Messages in this thread | | | Subject | Re: [PATCH V3 0/2] load_balance() fixes for affinity | From | "Christ, Austin" <> | Date | Mon, 22 May 2017 14:17:17 -0600 |
| |
Hey Peter,
On 5/22/2017 9:52 AM, Peter Zijlstra wrote: > On Thu, May 18, 2017 at 01:36:01PM -0600, Jeffrey Hugo wrote: > >> The group_imbalance path correctly sets the flag >> to indicate the group can not be properly balanced due to affinity, but the >> redo condition right after this branch incorrectly assumes that there may >> be other cores with work to be pulled by considering cores outside of the >> scheduling domain in question. > So its been a while since I looked at any of this, but from a quick > look, env->cpus appears to only be applied to group/balance masks. > > In which case, we can easily do something like the below. Did I miss > something? We have looked through and agree with your proposed change; however, we would still need to mask out the dst_cpu when considering the redo path. We will include this modification in the next patch set. > > --- > kernel/sched/fair.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 219fe58e3023..1724e4433f89 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -8104,7 +8104,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, > if (idle == CPU_NEWLY_IDLE) > env.dst_grpmask = NULL; > > - cpumask_copy(cpus, cpu_active_mask); > + cpumask_and(cpus, sched_domain_span(sd), cpu_active_mask); > > schedstat_inc(sd->lb_count[idle]); >
-- Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
| |