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