mm/mempolicy.c | 2 +- mm/migrate.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
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
On Mon, 4 Apr 2022 12:53:25 -0400 Zi Yan <zi.yan@sent.com> wrote: > 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. Changelog doesn't describe the end user visible effects of the bug. And it really should, because > Link: https://lore.kernel.org/linux-mm/20220404132908.GA785673@u2004/ it fixes a kernel crash!
On 4 Apr 2022, at 14:28, Andrew Morton wrote: > On Mon, 4 Apr 2022 12:53:25 -0400 Zi Yan <zi.yan@sent.com> wrote: > >> 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. > > Changelog doesn't describe the end user visible effects of the bug. > And it really should, because > >> Link: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Flinux-mm%2F20220404132908.GA785673%40u2004%2F&data=04%7C01%7Cziy%40nvidia.com%7Cbf27ebf19d8a49a9b4b008da1668dc09%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C637846936880192108%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=pgvzV3wv6icqkMaWY2koB9X4VqlPMaSHeB8r7%2Fv1938%3D&reserved=0 > > it fixes a kernel crash! Thank you for adding the information. -- Best Regards, Yan, Zi
© 2016 - 2026 Red Hat, Inc.