diff options
author | David Rientjes <[email protected]> | 2016-07-14 12:06:50 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2016-07-15 14:54:27 +0900 |
commit | a46cbf3bc53b6a93fb84a5ffb288c354fa807954 (patch) | |
tree | 9f9c1029e2291f6b366c881175f1a2894d246666 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | f97d10454e4da2aceb44dfa7c59bb43ba9f50199 (diff) |
mm, compaction: prevent VM_BUG_ON when terminating freeing scanner
It's possible to isolate some freepages in a pageblock and then fail
split_free_page() due to the low watermark check. In this case, we hit
VM_BUG_ON() because the freeing scanner terminated early without a
contended lock or enough freepages.
This should never have been a VM_BUG_ON() since it's not a fatal
condition. It should have been a VM_WARN_ON() at best, or even handled
gracefully.
Regardless, we need to terminate anytime the full pageblock scan was not
done. The logic belongs in isolate_freepages_block(), so handle its
state gracefully by terminating the pageblock loop and making a note to
restart at the same pageblock next time since it was not possible to
complete the scan this time.
[[email protected]: don't rescan pages in a pageblock]
Link: http://lkml.kernel.org/r/[email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: David Rientjes <[email protected]>
Reported-by: Minchan Kim <[email protected]>
Tested-by: Minchan Kim <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions