Message ID | 20230616110826.344417-1-aneesh.kumar@linux.ibm.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support for DAX vmemmap optimization for ppc64 | expand |
> On 16-Jun-2023, at 4:38 PM, Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> wrote: > > 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 Thanks for the updated series. The previously reported WARN_ON is not seen with this series. I also ran few regression tests against this series and did not see any problems. Based on the test results Tested-by: Sachin Sant <sachinp@linux.ibm.com <mailto:sachinp@linux.ibm.com>> -Sachin
Hi Andrew, "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> 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
On Sat, 24 Jun 2023 20:22:27 +0530 "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> wrote: > > 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? https://lkml.kernel.org/r/87zg4ugqas.fsf@linux.ibm.com leads me to believe there will be a v3 series? Please send whatever is appropriate, against 6.5-rc1 or thereabouts.
On Fri, 16 Jun 2023 16:38:10 +0530, Aneesh Kumar K.V wrote: > 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" > > [...] Patch 1, 3, 4 and 5 applied to powerpc/next. [01/16] powerpc/mm/book3s64: Use pmdp_ptep helper instead of typecasting. https://git.kernel.org/powerpc/c/040ec6202bb89d51e2d8d4c848d8160c0e5e3fe8 [03/16] powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo https://git.kernel.org/powerpc/c/0da90af431abc3f497a38ec9ef6e43b0d0dabe80 [04/16] powerpc/book3s64/mm: Use PAGE_KERNEL instead of opencoding https://git.kernel.org/powerpc/c/d933557b858f78d7b702e70614b469a84b72e56c [05/16] powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary https://git.kernel.org/powerpc/c/c8eebc4a99f15280654f23e914e746c40a516e50 cheers