mm: improve migration heuristic
Some users were still seeing extreme unmovable page block migration over time due to unmovable allocations stealing mostly free movable blocks. Reduce the likelihood of this by only allowing unmovable allocations to aggressively steal reclaimable pageblocks. bug 26916944 Change-Id: I87fe0b0963ea967e4edf1ef60ae3fd297bf6978c
This commit is contained in:
parent
6c39793bbe
commit
7afbc50a96
|
@ -1121,7 +1121,11 @@ static void try_to_steal_freepages(struct zone *zone, struct page *page,
|
|||
return;
|
||||
}
|
||||
|
||||
if (current_order >= pageblock_order / 2 ||
|
||||
/* don't let unmovable allocations cause migrations simply because of free pages */
|
||||
if ((start_type != MIGRATE_UNMOVABLE && current_order >= pageblock_order / 2) ||
|
||||
/* only steal reclaimable page blocks for unmovable allocations */
|
||||
(start_type == MIGRATE_UNMOVABLE && fallback_type != MIGRATE_MOVABLE && current_order >= pageblock_order / 2) ||
|
||||
/* reclaimable can steal aggressively */
|
||||
start_type == MIGRATE_RECLAIMABLE ||
|
||||
// allow unmovable allocs up to 64K without migrating blocks
|
||||
(start_type == MIGRATE_UNMOVABLE && start_order >= 5) ||
|
||||
|
|
Loading…
Reference in New Issue