[PATCH 2/5] mm/compaction: set compact_cached_free_pfn correctly in update_pageblock_skip

From: Kemeng Shi
Date: Sat Jul 29 2023 - 05:43:57 EST


We will set skip to page block of block_start_pfn, it's more reasonable
to set compact_cached_free_pfn to page block before the block_start_pfn.

Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx>
---
mm/compaction.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index d1d28d57e5bd..4a784872565a 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1690,7 +1690,8 @@ static void isolate_freepages(struct compact_control *cc)

/* Update the skip hint if the full pageblock was scanned */
if (isolate_start_pfn >= block_end_pfn)
- update_pageblock_skip(cc, page, block_start_pfn);
+ update_pageblock_skip(cc, page, block_start_pfn -
+ pageblock_nr_pages);

/* Are enough freepages isolated? */
if (cc->nr_freepages >= cc->nr_migratepages) {
--
2.30.0