Re: [GIT PULL rcu/next] RCU commits for 3.3

From: Paul E. McKenney
Date: Wed Dec 14 2011 - 20:42:55 EST


On Wed, Dec 14, 2011 at 05:35:22PM -0800, Suresh Siddha wrote:
> On Wed, 2011-12-14 at 09:47 -0800, Frederic Weisbecker wrote:
> > I don't know how you plan to fix the conflict, by redoing the merge or by
> > applying a patch on tip/master.
> >
> > In any case, here is a patch you can use. Feel free to apply it as is
> > or to just refer to its diff to redo the merge:
> >
> > (Outrageously only compile tested)
> >
> > ---
> > From: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> > Date: Wed, 14 Dec 2011 18:36:00 +0100
> > Subject: [PATCH] sched: Only update the CPU idleness in the domain
> > hierarchy from idle loop entry
> >
> > We don't need to inform the sched domain hierarchy about the
> > CPU idleness everytime we call tick_nohz_stop_sched_tick() as this
> > includes both idle loop entry and idle interrupt exit.
> >
> > Doing it once from the idle loop entry is enough, call
> > set_cpu_sd_state_idle() only from tick_nohz_idle_enter() instead
> > to fix this.
> >
> > Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> > Cc: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> > Cc: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>
> > Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
>
> Acked-by: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>

Tested-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>

> > ---
> > kernel/time/tick-sched.c | 16 ++++++++--------
> > 1 files changed, 8 insertions(+), 8 deletions(-)
> >
> > diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
> > index 1f6dc515..696c997 100644
> > --- a/kernel/time/tick-sched.c
> > +++ b/kernel/time/tick-sched.c
> > @@ -289,14 +289,6 @@ static void tick_nohz_stop_sched_tick(struct tick_sched *ts)
> > now = tick_nohz_start_idle(cpu, ts);
> >
> > /*
> > - * Update the idle state in the scheduler domain hierarchy
> > - * when tick_nohz_stop_sched_tick() is called from the idle loop.
> > - * State will be updated to busy during the first busy tick after
> > - * exiting idle.
> > - */
> > - set_cpu_sd_state_idle();
> > -
> > - /*
> > * If this cpu is offline and it is the one which updates
> > * jiffies, then give up the assignment and let it be taken by
> > * the cpu which runs the tick timer next. If we don't drop
> > @@ -483,6 +475,14 @@ void tick_nohz_idle_enter(void)
> > * update of the idle time accounting in tick_nohz_start_idle().
> > */
> > ts->inidle = 1;
> > +
> > + /*
> > + * Update the idle state in the scheduler domain hierarchy
> > + * when tick_nohz_idle_enter() is called from the idle loop.
> > + * State will be updated to busy during the first busy tick after
> > + * exiting idle.
> > + */
> > + set_cpu_sd_state_idle();
> > tick_nohz_stop_sched_tick(ts);
> >
> > local_irq_enable();
> > --
> > 1.7.5.4
> >
> >
>
>

--
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/