From: Vladimir Davydov Date: Wed, 3 Feb 2016 00:57:49 +0000 (-0800) Subject: mm/vmpressure.c: fix subtree pressure detection X-Git-Tag: v4.9.8~2743^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3c1da7beeee02560cd0f0c66c5a59fce3c6746e3;p=platform%2Fkernel%2Flinux-rpi3.git mm/vmpressure.c: fix subtree pressure detection When vmpressure is called for the entire subtree under pressure we mistakenly use vmpressure->scanned instead of vmpressure->tree_scanned when checking if vmpressure work is to be scheduled. This results in suppressing all vmpressure events in the legacy cgroup hierarchy. Fix it. Fixes: 8e8ae645249b ("mm: memcontrol: hook up vmpressure to socket pressure") Signed-off-by: Vladimir Davydov Acked-by: Johannes Weiner Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/vmpressure.c b/mm/vmpressure.c index 9a6c070..149fdf6 100644 --- a/mm/vmpressure.c +++ b/mm/vmpressure.c @@ -248,9 +248,8 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree, if (tree) { spin_lock(&vmpr->sr_lock); - vmpr->tree_scanned += scanned; + scanned = vmpr->tree_scanned += scanned; vmpr->tree_reclaimed += reclaimed; - scanned = vmpr->scanned; spin_unlock(&vmpr->sr_lock); if (scanned < vmpressure_win)