Messages in this thread | | | Date | Thu, 8 Sep 2011 10:16:51 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH 08/32] nohz: Move nohz load balancer selection into idle logic |
| |
On Thu, Sep 08, 2011 at 04:08:54PM +0200, Frederic Weisbecker wrote: > 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.
If this CPU can also be the RCU grace-period advancer of last resort, that would make it easier to arrive at an improved RCU_FAST_NO_HZ.
Thanx, Paul
| |