On 29.05.25 08:32, Alistair Popple wrote:
Previously dax pages were skipped by the pagewalk code as pud_special() or
vm_normal_page{_pmd}() would be false for DAX pages. Now that dax pages are
refcounted normally that is no longer the case, so add explicit checks to
skip them.

Is this really what we want, though? If these are now just "normal" pages, they shall be handled as being normal.

I would assume that we want to check that in the callers instead.

E.g., in get_mergeable_page() we already have a folio_is_zone_device() check.


Signed-off-by: Alistair Popple <apop...@nvidia.com>
---
  include/linux/memremap.h | 11 +++++++++++
  mm/pagewalk.c            | 12 ++++++++++--
  2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/include/linux/memremap.h b/include/linux/memremap.h
index 4aa1519..54e8b57 100644
--- a/include/linux/memremap.h
+++ b/include/linux/memremap.h
@@ -198,6 +198,17 @@ static inline bool folio_is_fsdax(const struct folio 
*folio)
        return is_fsdax_page(&folio->page);
  }
+static inline bool is_devdax_page(const struct page *page)
+{
+       return is_zone_device_page(page) &&
+               page_pgmap(page)->type == MEMORY_DEVICE_GENERIC;
+}
+
+static inline bool folio_is_devdax(const struct folio *folio)
+{
+       return is_devdax_page(&folio->page);
+}

Hm, nobody uses folio_is_devdax() in this patch :)


--
Cheers,

David / dhildenb

Reply via email to