From: David Rientjes Date: Fri, 7 Apr 2017 23:05:00 +0000 (-0700) Subject: mm, swap_cgroup: reschedule when neeed in swap_cgroup_swapoff() X-Git-Tag: v4.4.76~79 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=74de12dbfa7c05876d88e1466f8a0113a8dcead1;p=profile%2Fcommon%2Fplatform%2Fkernel%2Flinux-artik7.git mm, swap_cgroup: reschedule when neeed in swap_cgroup_swapoff() commit 460bcec84e11c75122ace5976214abbc596eb91b upstream. We got need_resched() warnings in swap_cgroup_swapoff() because swap_cgroup_ctrl[type].length is particularly large. Reschedule when needed. Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1704061315270.80559@chino.kir.corp.google.com Signed-off-by: David Rientjes Acked-by: Michal Hocko Cc: Johannes Weiner Cc: Vladimir Davydov Cc: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Cc: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- diff --git a/mm/swap_cgroup.c b/mm/swap_cgroup.c index 40dd0f9..09f733b 100644 --- a/mm/swap_cgroup.c +++ b/mm/swap_cgroup.c @@ -205,6 +205,8 @@ void swap_cgroup_swapoff(int type) struct page *page = map[i]; if (page) __free_page(page); + if (!(i % SWAP_CLUSTER_MAX)) + cond_resched(); } vfree(map); }