Hi, This series is split out from the earlier, larger series "mm: Generalize HVO for HugeTLB and device DAX" [1]. While the parent series generalizes vmemmap optimization across HugeTLB and device DAX, this subset addresses a single, self-contained step: simplifying the device DAX vmemmap optimization plumbing.
After device DAX was converted to section-based vmemmap optimization, whether a mapping can be optimized is carried in mem_section, and the architecture-specific population path can handle any remaining fallback. The code still retains the DAX-specific vmemmap_can_optimize() helper, a PowerPC override, and @pgmap arguments threaded through lower-level vmemmap population and memory-removal interfaces. These duplicate the section-order policy and keep otherwise generic paths coupled to dev_pagemap. This series removes that obsolete plumbing by consolidating the optimization policy around memory-section metadata and simplifying the generic and architecture-specific population paths. This also eliminates dependencies that are no longer needed once the optimization state is carried by the memory section. This leaves the section compound order as the single source of truth for vmemmap optimization and decouples the generic sparse-vmemmap and memory-hotplug paths from device DAX. This is another smaller step toward the broader HVO generalization. [1] https://lore.kernel.org/[email protected]/ Muchun Song (4): powerpc/mm: make vmemmap_populate_compound_pages() static powerpc/mm: drop powerpc vmemmap_can_optimize() mm/sparse-vmemmap: drop vmemmap_can_optimize() mm/sparse-vmemmap: drop @pgmap from vmemmap population APIs arch/arm64/mm/mmu.c | 5 ++- arch/loongarch/mm/init.c | 5 ++- arch/powerpc/include/asm/book3s/64/radix.h | 12 ------- arch/powerpc/mm/book3s64/radix_pgtable.c | 23 ++++--------- arch/powerpc/mm/init_64.c | 1 + arch/powerpc/mm/mem.c | 5 ++- arch/riscv/mm/init.c | 5 ++- arch/s390/mm/init.c | 5 ++- arch/x86/mm/init_64.c | 5 ++- include/linux/memory_hotplug.h | 8 ++--- include/linux/mm.h | 40 +--------------------- mm/memory_hotplug.c | 16 ++++----- mm/memremap.c | 4 +-- mm/sparse-vmemmap.c | 34 ++++++++++-------- mm/sparse.c | 6 ++-- 15 files changed, 54 insertions(+), 120 deletions(-) base-commit: 5e6c45aaaf93343c7f8a1cde9797080238af5c1b -- 2.54.0
