diff options
author | David Rientjes <rientjes@google.com> | 2017-11-17 15:26:27 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-17 16:10:00 -0800 |
commit | a0647dc9208fae9124ca38d43a5c3c950d955291 (patch) | |
tree | dcdcdbdc23112f8733e506b087f47f637fdbdd48 /mm/compaction.c | |
parent | 09af5ccea26d347041ac7ca37a61f859ef9bd1f5 (diff) | |
download | lwn-a0647dc9208fae9124ca38d43a5c3c950d955291.tar.gz lwn-a0647dc9208fae9124ca38d43a5c3c950d955291.zip |
mm, compaction: kcompactd should not ignore pageblock skip
Kcompactd is needlessly ignoring pageblock skip information. It is
doing MIGRATE_SYNC_LIGHT compaction, which is no more powerful than
MIGRATE_SYNC compaction.
If compaction recently failed to isolate memory from a set of
pageblocks, there is nothing to indicate that kcompactd will be able to
do so, or that it is beneficial from attempting to isolate memory.
Use the pageblock skip hint to avoid rescanning pageblocks needlessly
until that information is reset.
Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1708151638550.106658@chino.kir.corp.google.com
Signed-off-by: David Rientjes <rientjes@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/compaction.c')
-rw-r--r-- | mm/compaction.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/mm/compaction.c b/mm/compaction.c index 85395dc6eb13..ad40d67421f3 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1928,9 +1928,8 @@ static void kcompactd_do_work(pg_data_t *pgdat) .total_free_scanned = 0, .classzone_idx = pgdat->kcompactd_classzone_idx, .mode = MIGRATE_SYNC_LIGHT, - .ignore_skip_hint = true, + .ignore_skip_hint = false, .gfp_mask = GFP_KERNEL, - }; trace_mm_compaction_kcompactd_wake(pgdat->node_id, cc.order, cc.classzone_idx); |