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>
This commit is contained in:
parent
09af5ccea2
commit
a0647dc920
@ -1928,9 +1928,8 @@ static void kcompactd_do_work(pg_data_t *pgdat)
|
|||||||
.total_free_scanned = 0,
|
.total_free_scanned = 0,
|
||||||
.classzone_idx = pgdat->kcompactd_classzone_idx,
|
.classzone_idx = pgdat->kcompactd_classzone_idx,
|
||||||
.mode = MIGRATE_SYNC_LIGHT,
|
.mode = MIGRATE_SYNC_LIGHT,
|
||||||
.ignore_skip_hint = true,
|
.ignore_skip_hint = false,
|
||||||
.gfp_mask = GFP_KERNEL,
|
.gfp_mask = GFP_KERNEL,
|
||||||
|
|
||||||
};
|
};
|
||||||
trace_mm_compaction_kcompactd_wake(pgdat->node_id, cc.order,
|
trace_mm_compaction_kcompactd_wake(pgdat->node_id, cc.order,
|
||||||
cc.classzone_idx);
|
cc.classzone_idx);
|
||||||
|
Loading…
Reference in New Issue
Block a user