On Mon, Oct 08, 2007 at 11:45:23AM -0700, Mike Kravetz wrote:
For i386 I don't think so. Seems that the interrupt handler will set the
current task to "need_resched" and on exit of the interrupt handler, the
schedule should take place. I don't see the race (that doesn't mean
there is one).
For x86_64 though, I don't think that we schedule. All the reschedule
vector does is return with a comment:
/*
* Reschedule call back. Nothing to do,
* all the work is done automatically when
* we return from the interrupt.
*/
asmlinkage void smp_reschedule_interrupt(void)
{
ack_APIC_irq();
}
I'm thinking that this was the case for i386 a while back, and we fixed
it for RT.
/me does a quick search...
http://lkml.org/lkml/2005/5/13/174
Yep! This is a bug in x86_64. I'll fix this up tomorrow and send out a
patch.
-- Steve
-