On Mon, 2011-02-07 at 14:54 +0100, Peter Zijlstra wrote: > On Mon, 2011-02-07 at 10:26 +1100, Benjamin Herrenschmidt wrote: > > You missed: > > > > diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c > > index 9813605..467d122 100644 > > --- a/arch/powerpc/kernel/smp.c > > +++ b/arch/powerpc/kernel/smp.c > > @@ -98,6 +98,7 @@ void smp_message_recv(int msg) > > break; > > case PPC_MSG_RESCHEDULE: > > /* we notice need_resched on exit */ > > + scheduler_ipi(); > > break; > > case PPC_MSG_CALL_FUNC_SINGLE: > > generic_smp_call_function_single_interrupt(); > > > > Fold that in and add: > > > > Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > > Thanks Ben! BTW. I we lurking at some of our CPU hotplug code and I think I cannot totally guarantee that this won't be called on an offline CPU. If that's a problem, you may want to add a test for that. IE. The call function IPIs are normally not going to be sent to an offlined CPU, and stop_machine should be a good enough fence here, but we do abuse reschedule for a number of things (including in some case to wake up a sleeping CPU that was pseudo-offlined :-) Cheers, Ben.