On Thu, 22 May 2014, Mel Gorman wrote: > This series is aimed at regressions noticed during reclaim activity. The > first two patches are shrinker patches that were posted ages ago but never > merged for reasons that are unclear to me. I'm posting them again to see if > there was a reason they were dropped or if they just got lost. Dave? Time? > The last patch adjusts proportional reclaim. Yuanhan Liu, can you retest > the vm scalability test cases on a larger machine? Hugh, does this work > for you on the memcg test cases? Yes it does, thank you. Though the situation is muddy, since on our current internal tree, I'm surprised to find that the memcg test case no longer fails reliably without our workaround and without your fix. "Something must have changed"; but it would take a long time to work out what. If I travel back in time with git, to where we first applied the "vindictive" patch, then yes that test case convincingly fails without either (my or your) patch, and passes with either patch. And you have something that satisfies Yuanhan too, that's great. I'm also pleased to see Dave and Tim reduce the contention in grab_super_passive(): that's a familiar symbol from livelock dumps. You might want to add this little 4/3, that we've had in for a while; but with grab_super_passive() out of super_cache_count(), it will have much less importance. [PATCH 4/3] fs/superblock: Avoid counting without __GFP_FS Don't waste time counting objects in super_cache_count() if no __GFP_FS: super_cache_scan() would only back out with SHRINK_STOP in that case. Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> --- fs/super.c | 6 ++++++ 1 file changed, 6 insertions(+) --- melgo/fs/super.c 2014-05-26 13:39:33.000131904 -0700 +++ linux/fs/super.c 2014-05-26 13:56:19.012155813 -0700 @@ -110,6 +110,12 @@ static unsigned long super_cache_count(s struct super_block *sb; long total_objects = 0; + /* + * None can be freed without __GFP_FS, so don't waste time counting. + */ + if (!(sc->gfp_mask & __GFP_FS)) + return 0; + sb = container_of(shrink, struct super_block, s_shrink); /* -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>