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: unifying their vmemmap population paths.
After the preceding Device DAX conversion, both HugeTLB and Device DAX describe optimized vmemmap mappings through memory-section metadata and use per-zone shared tail vmemmap pages. The generic code, however, still carries a Device DAX-specific population flag and compound-page population path, along with arguments and helpers needed only by that path. This series first removes VMEMMAP_POPULATE_DAX and moves selection and reference handling for the shared tail page into the common vmemmap population path. It then removes the generic Device DAX-specific compound-page population path and routes section vmemmap population through vmemmap_populate(). The powerpc radix implementation retains its architecture-specific compound-page population and selects it directly for optimizable sections. The remaining patches remove the unused ptpfn argument, make the powerpc compound-page helper local to radix_pgtable.c, and open-code vmemmap_populate_address() now that no caller needs its returned PTE. This is the fourth smaller step toward the broader HVO generalization. After this series, HugeTLB and Device DAX use the same population model instead of parallel generic paths, while powerpc keeps its architecture-specific implementation. [1] https://lore.kernel.org/all/[email protected]/ Muchun Song (6): mm/sparse-vmemmap: drop VMEMMAP_POPULATE_DAX mm/sparse-vmemmap: support device DAX in common vmemmap path mm/sparse-vmemmap: drop Device DAX-specific population path mm/sparse-vmemmap: remove the unused ptpfn argument powerpc/mm: make vmemmap_populate_compound_pages() static mm/sparse-vmemmap: open-code vmemmap_populate_address() arch/powerpc/include/asm/book3s/64/radix.h | 6 - arch/powerpc/mm/book3s64/radix_pgtable.c | 14 +- mm/mm_init.c | 2 +- mm/sparse-vmemmap.c | 188 +++++---------------- 4 files changed, 50 insertions(+), 160 deletions(-) base-commit: 383fc05d4650b021f3c17e36a145106dcc61a294 -- 2.54.0
