Hi Andrew, "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> writes: > This patch series implements changes required to support DAX vmemmap > optimization for ppc64. The vmemmap optimization is only enabled with radix MMU > translation and 1GB PUD mapping with 64K page size. The patch series also split > hugetlb vmemmap optimization as a separate Kconfig variable so that > architectures can enable DAX vmemmap optimization without enabling hugetlb > vmemmap optimization. This should enable architectures like arm64 to enable DAX > vmemmap optimization while they can't enable hugetlb vmemmap optimization. More > details of the same are in patch "mm/vmemmap optimization: Split hugetlb and > devdax vmemmap optimization" > > Changes from V1: > * Fix make htmldocs warning > * Fix vmemmap allocation bugs with different alignment values. > * Correctly check for section validity to before we free vmemmap area > > Aneesh Kumar K.V (16): > powerpc/mm/book3s64: Use pmdp_ptep helper instead of typecasting. > powerpc/book3s64/mm: mmu_vmemmap_psize is used by radix > powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo > powerpc/book3s64/mm: Use PAGE_KERNEL instead of opencoding > powerpc/mm/dax: Fix the condition when checking if altmap vmemap can > cross-boundary > mm/hugepage pud: Allow arch-specific helper function to check huge > page pud support > mm: Change pudp_huge_get_and_clear_full take vm_area_struct as arg > mm/vmemmap: Improve vmemmap_can_optimize and allow architectures to > override > mm/vmemmap: Allow architectures to override how vmemmap optimization > works > mm: Add __HAVE_ARCH_PUD_SAME similar to __HAVE_ARCH_P4D_SAME > mm/huge pud: Use transparent huge pud helpers only with > CONFIG_TRANSPARENT_HUGEPAGE > mm/vmemmap optimization: Split hugetlb and devdax vmemmap optimization > powerpc/book3s64/mm: Enable transparent pud hugepage > powerpc/book3s64/vmemmap: Switch radix to use a different vmemmap > handling function > powerpc/book3s64/radix: Add support for vmemmap optimization for radix > powerpc/book3s64/radix: Remove mmu_vmemmap_psize > > Documentation/mm/vmemmap_dedup.rst | 1 + > Documentation/powerpc/index.rst | 1 + > Documentation/powerpc/vmemmap_dedup.rst | 101 +++ > arch/loongarch/Kconfig | 2 +- > arch/powerpc/Kconfig | 1 + > arch/powerpc/include/asm/book3s/64/pgtable.h | 156 ++++- > arch/powerpc/include/asm/book3s/64/radix.h | 47 ++ > .../include/asm/book3s/64/tlbflush-radix.h | 2 + > arch/powerpc/include/asm/book3s/64/tlbflush.h | 8 + > arch/powerpc/include/asm/pgtable.h | 3 + > arch/powerpc/mm/book3s64/pgtable.c | 78 +++ > arch/powerpc/mm/book3s64/radix_pgtable.c | 577 ++++++++++++++++-- > arch/powerpc/mm/book3s64/radix_tlb.c | 7 + > arch/powerpc/mm/init_64.c | 39 +- > arch/powerpc/platforms/Kconfig.cputype | 1 + > arch/riscv/Kconfig | 2 +- > arch/x86/Kconfig | 3 +- > drivers/nvdimm/pfn_devs.c | 2 +- > fs/Kconfig | 2 +- > include/linux/mm.h | 32 +- > include/linux/pgtable.h | 11 +- > include/trace/events/thp.h | 17 + > mm/Kconfig | 5 +- > mm/debug_vm_pgtable.c | 2 +- > mm/huge_memory.c | 2 +- > mm/mm_init.c | 2 +- > mm/mremap.c | 2 +- > mm/sparse-vmemmap.c | 3 + > 28 files changed, 1032 insertions(+), 77 deletions(-) > create mode 100644 Documentation/powerpc/vmemmap_dedup.rst > Michael Ellerman merged some of the ppc64 patches. How do you like to merge the mm changes? Do you like a repost of patches 6-12? -aneesh