Re: [PATCH 08/32] nohz: Move nohz load balancer selection into idle logic

Frederic Weisbecker
2011-09-08T14:09:04Z

On Mon, Aug 29, 2011 at 04:45:17PM +0200, Peter Zijlstra wrote:
> On Mon, 2011-08-15 at 17:52 +0200, Frederic Weisbecker wrote:
> > We want the nohz load balancer to be an idle CPU, thus
> > move that selection to strict dyntick idle logic.
>
> Again, the important part is missing, why is this correct?
>
> I'm not at all convinced this is correct, suppose all your cpus (except
> the system CPU, which we'll assume has many tasks) are busy running 1
> task. Then two of them get an extra task, now if those two happen to be
> SMT siblings you want the load-balancer to pull on task out from the SMT
> pair, however nobody is pulling since nobody is idle.
>
> AFAICT this breaks stuff and the ILB needs some serious attention in
> order to fix this.

Right, we have the support for trigger_load_balance() in scheduler_tick()
that is still missing.

What about using that CPU that has to stay awake with a periodic tick
to handle jiffies? We could force that CPU to be the idle load balancer.
The problem is perhaps to find the right frequency for doing that because
we have all the rq to handle.