Re: [PATCH] sched: fix clear NOHZ_BALANCE_KICK

Frederic Weisbecker
2013-06-04T11:19:11Z

On Tue, Jun 04, 2013 at 01:11:47PM +0200, Vincent Guittot wrote:
> On 4 June 2013 12:26, Frederic Weisbecker <fweisbec@gmail.com> wrote:
> > On Tue, Jun 04, 2013 at 11:36:11AM +0200, Peter Zijlstra wrote:
> >>
> >> The best I can seem to come up with is something like the below; but I think
> >> its ghastly. Surely we can do something saner with that bit.
> >>
> >> Having to clear it at 3 different places is just wrong.
> >
> > We could clear the flag early in scheduler_ipi() and set some
> > specific value in rq->idle_balance that tells we want nohz idle
> > balancing from the softirq, something like this untested:
>
> I'm not sure that we can have less than 2 places to clear it: cancel
> place or acknowledge place otherwise we can face a situation where
> idle load balance will be triggered 2 consecutive times because
> NOHZ_BALANCE_KICK will be cleared before the idle load balance has
> been done and had a chance to migrate tasks.

I guess it depends what is the minimum value of rq->next_balance, it seems
to be large enough to avoid this kind of incident. Although I don't
know well the whole logic with rq->next_balance and ilb trigger so I must
defer to you.