Re: [PATCH v2 2/5] sched/numa: Replace runnable_load_avg by load_avg

From: Mel Gorman
Date: Tue Feb 18 2020 - 08:51:13 EST


On Tue, Feb 18, 2020 at 01:37:45PM +0100, Dietmar Eggemann wrote:
> On 14/02/2020 16:27, Vincent Guittot wrote:
>
> [...]
>
> > /*
> > * The load is corrected for the CPU capacity available on each node.
> > *
> > @@ -1788,10 +1831,10 @@ static int task_numa_migrate(struct task_struct *p)
> > dist = env.dist = node_distance(env.src_nid, env.dst_nid);
> > taskweight = task_weight(p, env.src_nid, dist);
> > groupweight = group_weight(p, env.src_nid, dist);
> > - update_numa_stats(&env.src_stats, env.src_nid);
> > + update_numa_stats(&env, &env.src_stats, env.src_nid);
>
> This looks strange. Can you do:
>
> -static void update_numa_stats(struct task_numa_env *env,
> +static void update_numa_stats(unsigned int imbalance_pct,
> struct numa_stats *ns, int nid)
>
> - update_numa_stats(&env, &env.src_stats, env.src_nid);
> + update_numa_stats(env.imbalance_pct, &env.src_stats, env.src_nid);
>

You'd also have to pass in env->p and while it could be done, I do not
think its worthwhile.

> [...]
>
> > +static unsigned long cpu_runnable_load(struct rq *rq)
> > +{
> > + return cfs_rq_runnable_load_avg(&rq->cfs);
> > +}
> > +
>
> Why not remove cpu_runnable_load() in this patch rather moving it?
>
> kernel/sched/fair.c:5492:22: warning: ???cpu_runnable_load??? defined but
> not used [-Wunused-function]
> static unsigned long cpu_runnable_load(struct rq *rq)
>

I took the liberty of addressing that when I picked up Vincent's patches
for "Reconcile NUMA balancing decisions with the load balancer v3" to fix
a build warning. I did not highlight it when I posted because it was such
a trivial change.

--
Mel Gorman
SUSE Labs