Re: [PATCH v6 01/13] mm/migrate_device: Introduce migrate_pfn_from_page() helper
From: Jordan Niethe
Date: Tue Mar 03 2026 - 00:53:02 EST
Hi
On 2/3/26 20:22, David Hildenbrand (Arm) wrote:
On 3/2/26 00:38, Jordan Niethe wrote:
Hi,
On 28/2/26 08:11, David Hildenbrand (Arm) wrote:
On 2/2/26 12:36, Jordan Niethe wrote:
To create a migrate entry from a given struct page, that page is first
converted to its pfn, before passing the pfn to migrate_pfn().
A future change will remove device private pages from the physical
address space. This will mean that device private pages no longer have a
pfn and must be handled separately.
Prepare for this with a new helper:
- migrate_pfn_from_page()
This helper takes a struct page as parameter instead of a pfn. This will
allow more flexibility for handling the mpfn differently for device
private pages.
Reviewed-by: Balbir Singh <balbirs@xxxxxxxxxx>
Acked-by: Felix Kuehling <felix.kuehling@xxxxxxx>
Signed-off-by: Jordan Niethe <jniethe@xxxxxxxxxx>
---
Acked-by: David Hildenbrand (Arm) <david@xxxxxxxxxx>
I'll go through he remainder of the patchset this week.
Much appreciated.
While skimming over patch #2, I was wondering whether
"page_to_migration_pfn()" would better fit "migration_pfn_to_page".
I guess you were thinking about migration_pfn_/from/_page() rather than
"migration_pfn_to_page()"? Renaming it to page_to_migration_pfn() would be fine.
... and I was wondering why that code deals with pages instead of folios.
E.g.,
page = folio_page(folio, 0);
mpfn[i] = migrate_pfn_from_page(page);
Should just be
mpfn[i] = folio_to_migration_pfn(folio);
Right?
This patch is quite limited, essentially just converts usages of
migrate_pfn(page_to_pfn()) to migration_pfn_from_page(). However, I
agree, there could be scope for moving some of those usages to folios.
Was that example from drm_pagemap_migrate_populate_ram_pfn()? There
'page' goes on to be used elsewhere in the function so we'd need some
further refactoring to fully benefit.
I see migrate_vma_collect_huge_pmd() as a candidate for a
folio_to_migration_pfn() function too.
Thanks,
Jordan.