mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
mm: compaction: simplify the code in __compact_finished
Since commit efe771c760
("mm, compaction: always finish scanning of a
full pageblock"), compaction will always finish scanning a pageblock. And
migrate_pfn is assured to align with pageblock_nr_pages when we reach
here. So we will always return COMPACT_SUCCESS if a suitable fallback is
found due to the below IS_ALIGNED check of migrate_pfn. Simplify the code
to make this clear and improve the readability. No functional change
intended.
Link: https://lkml.kernel.org/r/20220418141253.24298-12-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Cc: Charan Teja Kalla <charante@codeaurora.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: Pintu Kumar <pintu@codeaurora.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
cff387d6a2
commit
fa599c4498
@ -2134,29 +2134,16 @@ static enum compact_result __compact_finished(struct compact_control *cc)
|
||||
* other migratetype buddy lists.
|
||||
*/
|
||||
if (find_suitable_fallback(area, order, migratetype,
|
||||
true, &can_steal) != -1) {
|
||||
|
||||
/* movable pages are OK in any pageblock */
|
||||
if (migratetype == MIGRATE_MOVABLE)
|
||||
return COMPACT_SUCCESS;
|
||||
|
||||
true, &can_steal) != -1)
|
||||
/*
|
||||
* We are stealing for a non-movable allocation. Make
|
||||
* sure we finish compacting the current pageblock
|
||||
* first so it is as free as possible and we won't
|
||||
* have to steal another one soon. This only applies
|
||||
* to sync compaction, as async compaction operates
|
||||
* on pageblocks of the same migratetype.
|
||||
* Movable pages are OK in any pageblock. If we are
|
||||
* stealing for a non-movable allocation, make sure
|
||||
* we finish compacting the current pageblock first
|
||||
* (which is assured by the above migrate_pfn align
|
||||
* check) so it is as free as possible and we won't
|
||||
* have to steal another one soon.
|
||||
*/
|
||||
if (cc->mode == MIGRATE_ASYNC ||
|
||||
IS_ALIGNED(cc->migrate_pfn,
|
||||
pageblock_nr_pages)) {
|
||||
return COMPACT_SUCCESS;
|
||||
}
|
||||
|
||||
ret = COMPACT_CONTINUE;
|
||||
break;
|
||||
}
|
||||
return COMPACT_SUCCESS;
|
||||
}
|
||||
|
||||
out:
|
||||
|
Loading…
Reference in New Issue
Block a user