In idle(), "sti; hlt" must be atomic or we can waste time waiting for