Re: RCU question

From: George Anzinger
Date: Fri Dec 10 2004 - 22:30:29 EST


Zwane Mwaikambo wrote:
On Fri, 10 Dec 2004, George Anzinger wrote:


But that's a deadlock and if you enable interrupts you race.

Again, I remind you we are in the idle task. Nothing more important to do.
Or do you mean that softirq_pending() will NEVER return false?

The other question is: "Is useful work being done?"


We're in the idle task but obviously interrupts (such as network) are still coming in. So you may take an interrupt after your while (softirq_pending()) loop has exited.

That is ok. Either we have interrupts off and no softirqs are pending and we proceed to the "hlt" (where the interrupt will be taken), or softirqs are pending, we turn interrupts on, do the softirq, turn interrupts off and try again. Unless some tasklet (RCU?) never "gives up" or we will exit the while with interrupts off and move on to the "hlt". Or did I miss something?
-
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/

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