Re: [PATCH 04/12] mm: Convert vmf_insert_mixed() from using pte_devmap to pte_special

Jason Gunthorpe
2025-06-03T13:37:42Z

On Thu, May 29, 2025 at 04:32:05PM +1000, Alistair Popple wrote:
> DAX no longer requires device PTEs as it always has a ZONE_DEVICE page
> associated with the PTE that can be reference counted normally. Other users
> of pte_devmap are drivers that set PFN_DEV when calling vmf_insert_mixed()
> which ensures vm_normal_page() returns NULL for these entries.
>
> There is no reason to distinguish these pte_devmap users so in order to
> free up a PTE bit use pte_special instead for entries created with
> vmf_insert_mixed(). This will ensure vm_normal_page() will continue to
> return NULL for these pages.
>
> Architectures that don't support pte_special also don't support pte_devmap
> so those will continue to rely on pfn_valid() to determine if the page can
> be mapped.
>
> Signed-off-by: Alistair Popple <apopple@nvidia.com>
> ---
> mm/hmm.c | 3 ---
> mm/memory.c | 20 ++------------------
> mm/vmscan.c | 2 +-
> 3 files changed, 3 insertions(+), 22 deletions(-)

Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>

Jason