From 25c3d2df1d38b49f389234e074978d05946a0a63 Mon Sep 17 00:00:00 2001 From: Zhenneng Li Date: Mon, 24 Jun 2024 12:19:08 +0800 Subject: [PATCH] migrate_pages: modify max number of pages to migrate in batch We restrict the number of pages to be migrated to no more than HPAGE_PMD_NR or NR_MAX_BATCHED_MIGRATION, but in fact, the number of pages to be migrated may reach 2*HPAGE_PMD_NR-1 or 2 *NR_MAX_BATCHED_MIGRATION-1, it's not in inconsistent with the context. Please refer to the patch: 42012e0436d4(migrate_pages: restrict number of pages to migrate in batch) Signed-off-by: Zhenneng Li --- mm/migrate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index 781979567f64..cce8e2b85e89 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1957,11 +1957,12 @@ int migrate_pages(struct list_head *from, new_folio_t get_new_folio, } nr_pages += folio_nr_pages(folio); - if (nr_pages >= NR_MAX_BATCHED_MIGRATION) + if ((nr_pages >= NR_MAX_BATCHED_MIGRATION) && + (!list_first_entry(from, struct folio, lru))) break; } if (nr_pages >= NR_MAX_BATCHED_MIGRATION) - list_cut_before(&folios, from, &folio2->lru); + list_cut_before(&folios, from, &folio->lru); else list_splice_init(from, &folios); if (mode == MIGRATE_ASYNC) -- 2.25.1