Re: [PATCH v3] time/tick-sched: idle load balancing when nohz_full cpu becomes idle.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Would you eventually like to add the tag “Fixes” once more?

Sorry. I forgot :(

> > +++ b/kernel/time/tick-sched.c
> > @@ -1228,8 +1228,10 @@ void tick_nohz_idle_stop_tick(void)
> >               ts->idle_sleeps++;
> >               ts->idle_expires = expires;
> >
> > -             if (!was_stopped && tick_sched_flag_test(ts, TS_FLAG_STOPPED)) {
> > -                     ts->idle_jiffies = ts->last_jiffies;
> > +             if (tick_sched_flag_test(ts, TS_FLAG_STOPPED)) {
> > +                     if (!was_stopped)
> > +                             ts->idle_jiffies = ts->last_jiffies;
> > +
> >                       nohz_balance_enter_idle(cpu);
> >               }
> …
>
> I interpret these diff data in the way that you propose to reorder
> two condition checks.
>
> But I wonder still how “good” the presented change description fits to
> the suggested source code adjustment.

FWIW it doesn't need to check !was_stopped to
call nohz_balance_enter_idle() in tick_nohz_idle_stop_tick().
Formerly, __tick_nohz_idle_enter() is called in both
tick_nohz_irq_exit() and in do_idle().
That's why it's required for nohz full cpu which already stop the
tick, but not idle
to prevent enter idle balance.
(but it makes nohz full cpu enter nohz idle balance as side effect i think?)

 but after some reorganizing code tick_nohz_idle_stop_tick() becomes
the code called in
only when enter idle.

What I point is that it doesn't need to check !was_stopped to call
nohz_balance_enter_idle()
in tick_nohz_idle_stop_tick().

So, I think it's enough in commit message?

Am I wrong?

Thanks.





[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux