mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
mm: compaction: memory compaction core
This patch is the core of a mechanism which compacts memory in a zone by relocating movable pages towards the end of the zone. A single compaction run involves a migration scanner and a free scanner. Both scanners operate on pageblock-sized areas in the zone. The migration scanner starts at the bottom of the zone and searches for all movable pages within each area, isolating them onto a private list called migratelist. The free scanner starts at the top of the zone and searches for suitable areas and consumes the free pages within making them available for the migration scanner. The pages isolated for migration are then migrated to the newly isolated free pages. [[email protected]: Fix unsafe optimisation] [[email protected]: do not schedule work on other CPUs for compaction] Signed-off-by: Mel Gorman <[email protected]> Acked-by: Rik van Riel <[email protected]> Reviewed-by: Minchan Kim <[email protected]> Cc: KOSAKI Motohiro <[email protected]> Cc: Christoph Lameter <[email protected]> Cc: KAMEZAWA Hiroyuki <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
c175a0ce75
commit
748446bb6b
10 changed files with 472 additions and 1 deletions
|
|
@ -766,6 +766,13 @@ static const char * const vmstat_text[] = {
|
|||
"allocstall",
|
||||
|
||||
"pgrotated",
|
||||
|
||||
#ifdef CONFIG_COMPACTION
|
||||
"compact_blocks_moved",
|
||||
"compact_pages_moved",
|
||||
"compact_pagemigrate_failed",
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HUGETLB_PAGE
|
||||
"htlb_buddy_alloc_success",
|
||||
"htlb_buddy_alloc_fail",
|
||||
|
|
|
|||
Loading…
Reference in a new issue