Messages in this thread Patch in this message | | | Date | Thu, 7 Feb 2019 10:57:43 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH 4/5] sched/fair: Tune down misfit nohz kicks |
| |
On Wed, Feb 06, 2019 at 05:25:31PM +0000, Valentin Schneider wrote: > Hi, > > On 06/02/2019 16:04, Peter Zijlstra wrote: > [...] > >> @@ -9561,6 +9573,14 @@ static void nohz_balancer_kick(struct rq *rq) > > > > sd = rcu_dereference(rq->sd); > > if (sd) { > > if ((rq->cfs.h_nr_running >= 1) && > > check_cpu_capacity(rq, sd)) { > > flags = NOHZ_KICK_MASK; > > goto unlock; > >> } > >> } > >> > >> + sd = rcu_dereference(per_cpu(sd_asym_cpucapacity, cpu)); > >> + if (sd) { > >> + if (check_misfit_status(rq, sd)) { > >> + flags = NOHZ_KICK_MASK; > >> + goto unlock; > >> + } > >> + } > > > > So while the exact @sd to use for check_cpu_capacity() likely doesn't > > matter; this is a 'implicit' test for actually having asym_capacity. > > > > I did feel compelled to use the "right" @sd to have a coherent > imbalance_pct being used - on big.LITTLE, the @sd above this hunk would be > MC (117 imbalance_pct) whereas the sd_asym_cpucapacity one would be > DIE (125 imbalance_pct).
Fair enough.
> > @@ -9606,6 +9614,10 @@ static void nohz_balancer_kick(struct rq > > > > sd = rcu_dereference(per_cpu(sd_asym_packing, cpu)); > > if (sd) { > > + /* > > + * When ASYM_PACKING; see if there's a more preferred CPU going > > + * idle; in which case, kick the ILB to move tasks around. > > + */ > > s/going idle/currently idle/, no?
Yah.. D'0h..
> > for_each_cpu_and(i, sched_domain_span(sd), nohz.idle_cpus_mask) { > > if (sched_asym_prefer(i, cpu)) { > > flags = NOHZ_KICK_MASK; > >
| |