Re: [PATCH] sched: access local runqueue directly in single_task_running

From: Peter Zijlstra
Date: Fri Sep 18 2015 - 07:41:07 EST


On Fri, Sep 18, 2015 at 01:26:53PM +0200, Paolo Bonzini wrote:
> > +++ b/kernel/sched/core.c
> > @@ -2614,13 +2614,13 @@ unsigned long nr_running(void)
> >
> > /*
> > * Check if only the current task is running on the cpu.
> > + *
> > + * Caution result is subject to time-of-check-to-time-of-use race,
> > + * every caller is responsible to set up additional fences if necessary.
>
> Let's expand it a bit more:
>
> * Caution: this function does not check that the caller has disabled
> * preemption, thus the result might have a time-of-check-to-time-of-use
> * race. The caller is responsible to use this correctly, for example:
> *
> * - use it from a non-preemptable section
> *
> * - use it from a thread that is bound to a single CPU
> *
> * - use it in a loop where each iteration takes very little time
> * (e.g. a polling loop)
> */
>
> I'll include it in my pull request.

In which case:

Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
--
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/