Messages in this thread Patch in this message | | | From | Zi Yan <> | Subject | [PATCH] mm: migrate: use thp_order instead of HPAGE_PMD_ORDER for new page allocation. | Date | Mon, 4 Apr 2022 12:53:25 -0400 |
| |
From: Zi Yan <ziy@nvidia.com>
With folios support, it is possible to have other than HPAGE_PMD_ORDER THPs, in the form of folios, in the system. Use thp_order() to correctly determine the source page order during migration.
Fixes: d68eccad3706 ("mm/filemap: Allow large folios to be added to the page cache") Reported-by: Naoya Horiguchi <naoya.horiguchi@linux.dev> Link: https://lore.kernel.org/linux-mm/20220404132908.GA785673@u2004/ Signed-off-by: Zi Yan <ziy@nvidia.com> --- mm/mempolicy.c | 2 +- mm/migrate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 6b34c5d5e65a..88a74bc4cba5 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1209,7 +1209,7 @@ static struct page *new_page(struct page *page, unsigned long start) struct page *thp; thp = alloc_hugepage_vma(GFP_TRANSHUGE, vma, address, - HPAGE_PMD_ORDER); + thp_order(page)); if (!thp) return NULL; prep_transhuge_page(thp); diff --git a/mm/migrate.c b/mm/migrate.c index 4639dfc2b7ee..b58b96fdb174 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1553,7 +1553,7 @@ struct page *alloc_migration_target(struct page *page, unsigned long private) */ gfp_mask &= ~__GFP_RECLAIM; gfp_mask |= GFP_TRANSHUGE; - order = HPAGE_PMD_ORDER; + order = thp_order(page); } zidx = zone_idx(page_zone(page)); if (is_highmem_idx(zidx) || zidx == ZONE_MOVABLE) -- 2.35.1
| |