STI, HLT in acpi_cpu_idle_c1

Don Bowman don at sandvine.com
Thu Jun 17 19:32:16 GMT 2004


in the intel instruction manual, the effect
of STI is that interrupts are enabled
*after* the next instruction.

ie:

 sti
 ret
 ...

the return is still run with interrupts disabled
(if they were prior to the STI).

In acpi_cpu_idle_c1, it does:

 sti
 hlt

shouldn't there be a NOP in there so that interrupts
are guaranteed on?

We have traced down a lockup of the system with
a TAP emulator, and found that three processors
are in acpi_cpu_idle with bit 9 of EFLAGS clear,
indicating interrupts are disabled. The fourth
processor is spinning with nothing to do (since
hardclock etc don't come to it).

Suggestions? Am i off base on the sti/hlt? Is
there another problem that i might be running into?

--don


More information about the freebsd-current mailing list