Commit 460bcec8 authored by David Rientjes's avatar David Rientjes Committed by Linus Torvalds

mm, swap_cgroup: reschedule when neeed in swap_cgroup_swapoff()

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.comSigned-off-by: default avatarDavid Rientjes <rientjes@google.com>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e11f8b7b
...@@ -201,6 +201,8 @@ void swap_cgroup_swapoff(int type) ...@@ -201,6 +201,8 @@ void swap_cgroup_swapoff(int type)
struct page *page = map[i]; struct page *page = map[i];
if (page) if (page)
__free_page(page); __free_page(page);
if (!(i % SWAP_CLUSTER_MAX))
cond_resched();
} }
vfree(map); vfree(map);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment