On 9/8/26 11:03 AM, Muchun Song wrote:
HugeTLB vmemmap optimization now uses per-zone shared tail vmemmap pages.
Device DAX has not been switched to that mechanism yet.

Switch device DAX to vmemmap_shared_tail_page() as well. This aligns DAX
with HugeTLB by using the common per-zone shared tail vmemmap page.

The optimization is enabled only for DEV-DAX through pgmap->vmemmap_shift,
which is assigned when a DEV-DAX device is initialized. Unlike FS-DAX,
DEV-DAX does not modify tail struct pages, so sharing them is safe.

Got it — adding this description makes things significantly clearer.


Since the shared tail page can now back ZONE_DEVICE vmemmap mappings,
initialize its entries with PG_reserved for device zones. Also skip
poisoning vmemmap-optimizable sections while their struct pages may be
shared.

Signed-off-by: Muchun Song <[email protected]>
---
v2:
- Explain why sharing tail vmemmap pages is safe for DEV-DAX
   (suggested by Qi Zheng)
---
  include/linux/mmzone.h | 10 +++++++++
  mm/memory_hotplug.c    |  5 +++--
  mm/sparse-vmemmap.c    | 47 ++++++++++++++----------------------------
  3 files changed, 28 insertions(+), 34 deletions(-)


Acked-by: Qi Zheng <[email protected]>

Thanks,
Qi


Reply via email to