On Tue, Dec 17, 2013 at 11:51:26PM +0100, Frederic Weisbecker wrote: > We need the default timekeeping CPU to be able to receive IPIs sent > from full dynticks CPUs when they wake up from full system idle state. > > Therefore we need an entrypoint from the scheduler IPI so that the > need to poll on timekeeping duty is re-evaluated from irq_exit(). > > In order to achieve this, lets take the scheduler IPI everytime as long > as there is at least one full dynticks CPU around. Full dynticks CPUs > are interested too in taking scheduler IPIs to reevaluate their tick. > > Signed-off-by: Frederic Weisbecker <fweis...@gmail.com> > Cc: Thomas Gleixner <t...@linutronix.de> > Cc: Ingo Molnar <mi...@kernel.org> > Cc: Peter Zijlstra <pet...@infradead.org> > Cc: Steven Rostedt <rost...@goodmis.org> > Cc: Paul E. McKenney <paul...@linux.vnet.ibm.com> > Cc: John Stultz <john.stu...@linaro.org> > Cc: Alex Shi <alex....@linaro.org> > Cc: Kevin Hilman <khil...@linaro.org> > --- > kernel/sched/core.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index e85cda2..f46a7bc 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -1502,9 +1502,9 @@ void scheduler_ipi(void) > if (tif_need_resched()) > set_preempt_need_resched(); > > - if (llist_empty(&this_rq()->wake_list) > - && !tick_nohz_full_cpu(smp_processor_id()) > - && !got_nohz_idle_kick()) > + if (llist_empty(&this_rq()->wake_list) && > + !tick_nohz_full_enabled() && > + !got_nohz_idle_kick()) > return;
OK, this is what I was missing in my question about whether the NO_HZ_FULL state was re-evaluated in the interrupt-return path. Thanx, Paul > /* > -- > 1.8.3.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/