Re: [01/22] sched: Provide scheduler_ipi() callback in response to smp_send_reschedule()

Milton Miller
2011-03-11T15:07:45Z

On Wed, 02 Mar 2011 17:38:32 -0000, To: Peter Zijlstra wrote:

> For future rework of try_to_wake_up() we'd like to push part of that
> onto the CPU the task is actually going to run on, in order to do so we
> need a generic callback from the existing scheduler IPI.
>
> This patch introduces such a generic callback: scheduler_ipi() and
> implements it as a NOP.
>
> BenH notes: PowerPC might use this IPI on offline CPUs under rare
> conditions!!
..
> Index: linux-2.6/arch/powerpc/kernel/smp.c
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/kernel/smp.c
> +++ linux-2.6/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 */

This comment should also be removed, as it was documenting the empty action.

> + scheduler_ipi();
> break;
> case PPC_MSG_CALL_FUNC_SINGLE:
> generic_smp_call_function_single_interrupt();
> @@ -127,7 +128,7 @@ static irqreturn_t call_function_action(
>
> static irqreturn_t reschedule_action(int irq, void *data)
> {
> - /* we just need the return path side effect of checking need_resched */
> + scheduler_ipi();
> return IRQ_HANDLED;
> }
>

Thanks,
milton