diff options
author | Hugh Dickins <hughd@google.com> | 2016-12-13 01:44:44 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-13 03:55:08 +0100 |
commit | dc644a073769dd8949a75691eb4a5bdeb70a7d51 (patch) | |
tree | da576c3a8a1e38cbef5f00ce3974f45295832a63 /fs/proc | |
parent | mm, page_alloc: keep pcp count and list contents in sync if struct page is co... (diff) | |
download | linux-dc644a073769dd8949a75691eb4a5bdeb70a7d51.tar.xz linux-dc644a073769dd8949a75691eb4a5bdeb70a7d51.zip |
mm: add three more cond_resched() in swapoff
Add a cond_resched() in the unuse_pmd_range() loop (so as to call it
even when pmd none or trans_huge, like zap_pmd_range() does); and in the
unuse_mm() loop (since that might skip over many vmas). shmem_unuse()
and radix_tree_locate_item() look good enough already.
Those were the obvious places, but in fact the stalls came from
find_next_to_unuse(), which sometimes scans through many unused entries.
Apply scan_swap_map()'s LATENCY_LIMIT of 256 there too; and only go off
to test frontswap_map when a used entry is found.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1612052155140.13021@eggly.anvils
Signed-off-by: Hugh Dickins <hughd@google.com>
Reported-by: Eric Dumazet <edumazet@google.com>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/proc')
0 files changed, 0 insertions, 0 deletions