[PATCH v2 1/4] mm/compaction: set compact_cached_free_pfn correctly in update_pageblock_skip

From: Kemeng Shi
Date: Wed Aug 02 2023 - 21:49:13 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>
Reviewed-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxxxxx>
---
mm/compaction.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index fbf50a9e4d23..61f56cee3715 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1714,7 +1714,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