Re: [PATCH 3/6] sched/numa: Avoid task migration for small numa improvement
From: Srikar Dronamraju
Date: Wed Sep 12 2018 - 11:17:30 EST
> >
> > /*
> > + * Maximum numa importance can be 1998 (2*999);
> > + * SMALLIMP @ 30 would be close to 1998/64.
> > + * Used to deter task migration.
> > + */
> > +#define SMALLIMP 30
> > +
> > +/*
> >
> > /*
> > + * If the numa importance is less than SMALLIMP,
> > + * task migration might only result in ping pong
> > + * of tasks and also hurt performance due to cache
> > + * misses.
> > + */
> > + if (imp < SMALLIMP || imp <= env->best_imp + SMALLIMP / 2)
> > + goto unlock;
> > +
> > + /*
> > * In the overloaded case, try and keep the load balanced.
> > */
> > load = task_h_load(env->p) - task_h_load(cur);
>
> So what is this 'NUMA importance'? Seems just like a random parameter which generally isn't a
> good idea.
>
I refer the weight that is used to compare the suitability of the task to a
node as NUMA Importance. It varies between -999 to 1000. This is not
something that was introduced by this patch, but was introduced as part of
Numa balancing couple of years ago. group_imp, task_imp, best_imp all refer
to the NUMA importance. May be I am using a wrong term here. May be imp
stands for something other than importance.
In this patch, we are trying to limit task migration for small NUMA
importance. i.e if the NUMA importance for moving/swapping tasks is only 10,
then should we drop all the cache affinity for NUMA affinity? May be we need
to wait for the trend to stabilize.
I have chosen 30 as the weight below which we refuse to consider NUMA
importance. Its based on maximum NUMA importance / 64.
Please do suggest if you have a better method to limit task migrations for
small NUMA gain.