"Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> writes: > Arm disabled hugetlb vmemmap optimization [1] because hugetlb vmemmap > optimization includes an update of both the permissions (writeable to > read-only) and the output address (pfn) of the vmemmap ptes. That is not > supported without unmapping of pte(marking it invalid) by some > architectures. > > With DAX vmemmap optimization we don't require such pte updates and > architectures can enable DAX vmemmap optimization while having hugetlb > vmemmap optimization disabled. Hence split DAX optimization support into a > different config. > > loongarch and riscv don't have devdax support. So the DAX config is not > enabled for them. With this change, arm64 should be able to select DAX > optimization > > [1] commit 060a2c92d1b6 ("arm64: mm: hugetlb: Disable HUGETLB_PAGE_OPTIMIZE_VMEMMAP") > > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx> > --- > arch/loongarch/Kconfig | 2 +- > arch/riscv/Kconfig | 2 +- > arch/x86/Kconfig | 3 ++- > fs/Kconfig | 2 +- > include/linux/mm.h | 2 +- > mm/Kconfig | 5 ++++- > 6 files changed, 10 insertions(+), 6 deletions(-) what about s390? git grep "ARCH_WANT_OPTIMIZE_VMEMMAP" . arch/s390/Kconfig: select ARCH_WANT_OPTIMIZE_VMEMMAP > diff --git a/mm/Kconfig b/mm/Kconfig > index 7672a22647b4..7b388c10baab 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -461,7 +461,10 @@ config SPARSEMEM_VMEMMAP > # Select this config option from the architecture Kconfig, if it is preferred > # to enable the feature of HugeTLB/dev_dax vmemmap optimization. > # > -config ARCH_WANT_OPTIMIZE_VMEMMAP > +config ARCH_WANT_OPTIMIZE_DAX_VMEMMAP > + bool > + > +config ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP > bool > > config HAVE_MEMBLOCK_PHYS_MAP > -- > 2.40.1 -ritesh