Re: [PATCH 04/19] sched/numa: Set preferred_node based on best_cpu

From: Rik van Riel
Date: Mon Jun 04 2018 - 10:37:38 EST


On Mon, 2018-06-04 at 05:59 -0700, Srikar Dronamraju wrote:
> * Peter Zijlstra <peterz@xxxxxxxxxxxxx> [2018-06-04 14:23:36]:
>
> > OK, the above matches the description, but I'm puzzled by the
> > remainder:
> >
> > >
> > > - if (ng->active_nodes > 1 &&
> > > numa_is_active_node(env.dst_nid, ng))
> > > - sched_setnuma(p, env.dst_nid);
> > > + if (nid != p->numa_preferred_nid)
> > > + sched_setnuma(p, nid);
> > > }
> >
> > That seems to entirely loose the active_node thing, or are you
> > saying
> > best_cpu already includes that? (Changelog could use a little help
> > there
> > I suppose)
>
> I think checking for active_nodes before calling sched_setnuma was a
> mistake.
>
> Before this change, we may be retaining numa_preferred_nid to be the
> source node while we select another node with better numa affinity to
> run on.

Sometimes workloads are so large they get spread
around to multiple NUMA nodes.

In that case, you do NOT want all the tasks of
that workload (numa group) to try squeezing onto
the same load, only to have the load balancer
randomly move tasks off of that node again later.

How do you keep that from happening?

--
All Rights Reversed.

Attachment: signature.asc
Description: This is a digitally signed message part