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 <[email protected]>
Acked-by: Felix Kuehling <[email protected]>
Signed-off-by: Jordan Niethe <[email protected]>
---

Acked-by: David Hildenbrand (Arm) <[email protected]>

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.


Reply via email to