On Fri, Sep 07, 2018 at 07:12:01PM +0530, Srikar Dronamraju wrote:
> > Yeah, I was afraid it would.. Srikar, can you also evaluate, I suspect
> > we'll have to pick one of these two patches.
> 
> I can surely run some benchmarks between the two patches.
> However comparing  Mel's patch with
> http://lkml.kernel.org/r/1533276841-16341-4-git-send-email-sri...@linux.vnet.ibm.com
> 
> Mel's patch
> 
>       if (!cur) {
>  -            if (maymove || imp > env->best_imp)
>  +            if (maymove)
>                       goto assign;
>               else
> http://lkml.kernel.org/r/1533276841-16341-4-git-send-email-sri...@linux.vnet.ibm.com
> 
> 
>       if (!cur) {
> -             if (maymove || imp > env->best_imp)
> +             if (maymove && moveimp >= env->best_imp)
>                       goto assign;
>               else
> 
> In Mel's fix, if we already found a candidate task to swap and then encounter 
> a
> idle cpu, we are going ahead and overwriting the swap candidate. There is
> always a chance that swap candidate is a better fit than moving to idle cpu.
> 

There is a chance but to find out, the task has to be dequeued and requeued
on a maybe. An idle CPU is less disruptive and the only task affected is
migrating to the preferred node where, based on previous fault behaviour,
should have better locality. It's also a simplier patch but I'm going to
be biased towards my own patch, the tests will decide one way or the other.

-- 
Mel Gorman
SUSE Labs

Reply via email to