Messages in this thread Patch in this message | | | From | Kemeng Shi <> | Subject | [PATCH 4/9] mm/compaction: simplify pfn iteration in isolate_freepages_range | Date | Sat, 5 Aug 2023 19:07:06 +0800 |
| |
We call isolate_freepages_block in strict mode, continuous pages in pageblock will be isolated if isolate_freepages_block successed. Then pfn + isolated will point to start of next pageblock to scan no matter how many pageblocks are isolated in isolate_freepages_block. Use pfn + isolated as start of next pageblock to scan to simplify the iteration.
Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com> --- mm/compaction.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/mm/compaction.c b/mm/compaction.c index 684f6e6cd8bc..8d7d38073d30 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -733,21 +733,11 @@ isolate_freepages_range(struct compact_control *cc, block_end_pfn = pageblock_end_pfn(pfn); for (; pfn < end_pfn; pfn += isolated, - block_start_pfn = block_end_pfn, - block_end_pfn += pageblock_nr_pages) { + block_start_pfn = pfn, + block_end_pfn = pfn + pageblock_nr_pages) { /* Protect pfn from changing by isolate_freepages_block */ unsigned long isolate_start_pfn = pfn; - /* - * pfn could pass the block_end_pfn if isolated freepage - * is more than pageblock order. In this case, we adjust - * scanning range to right one. - */ - if (pfn >= block_end_pfn) { - block_start_pfn = pageblock_start_pfn(pfn); - block_end_pfn = pageblock_end_pfn(pfn); - } - block_end_pfn = min(block_end_pfn, end_pfn); if (!pageblock_pfn_to_page(block_start_pfn, -- 2.30.0
| |