Re: scheduling problem?

William Montgomery (william@opinicus.com)
Fri, 17 Dec 1999 09:13:46 -0500 (EST)


On Fri, 17 Dec 1999, Andrea Arcangeli wrote:

> On Thu, 16 Dec 1999, Jamie Lokier wrote:
>
> > asm volatile("sti ; hlt" : : : "memory");
> ^^^^^^^^^
>
> The wakeup can still happen between sti and hlt so it doesn't fix the
> irq race condition.
>
The Intel Assembly Language Reference Manual states that the sti
instruction sets the interrupt flag to 1 and the CPU then responds
to external interrupts after executing the *next* instruction if the
next instruction allows the interrupt to remain enabled. So the
wakeup can only happen _after_ the hlt which is the desired effect.

I have implemented the above patch and tested overnight with no
more problems due to the idle task.

Wm

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/