The sysfs interface to CMA has a marginal runtime cost and a small footprint, there's no reason not to include it in all kernels where the dependencies are satisfied. Signed-off-by: Jean Delvare --- As discussed with David: https://lkml.org/lkml/2025/8/6/371 arch/loongarch/configs/loongson3_defconfig | 1 - arch/s390/configs/debug_defconfig | 1 - arch/s390/configs/defconfig | 1 - mm/Kconfig | 7 ------- mm/Makefile | 4 +++- mm/cma.h | 4 ++-- 6 files changed, 5 insertions(+), 13 deletions(-) --- linux-6.17.orig/arch/loongarch/configs/loongson3_defconfig +++ linux-6.17/arch/loongarch/configs/loongson3_defconfig @@ -120,7 +120,6 @@ CONFIG_MEMORY_HOTREMOVE=y CONFIG_KSM=y CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_CMA=y -CONFIG_CMA_SYSFS=y CONFIG_USERFAULTFD=y CONFIG_NET=y CONFIG_PACKET=y --- linux-6.17.orig/arch/s390/configs/debug_defconfig +++ linux-6.17/arch/s390/configs/debug_defconfig @@ -103,7 +103,6 @@ CONFIG_MEMORY_HOTREMOVE=y CONFIG_KSM=y CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_CMA_DEBUGFS=y -CONFIG_CMA_SYSFS=y CONFIG_CMA_AREAS=7 CONFIG_MEM_SOFT_DIRTY=y CONFIG_DEFERRED_STRUCT_PAGE_INIT=y --- linux-6.17.orig/arch/s390/configs/defconfig +++ linux-6.17/arch/s390/configs/defconfig @@ -95,7 +95,6 @@ CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_KSM=y CONFIG_TRANSPARENT_HUGEPAGE=y -CONFIG_CMA_SYSFS=y CONFIG_CMA_AREAS=7 CONFIG_MEM_SOFT_DIRTY=y CONFIG_DEFERRED_STRUCT_PAGE_INIT=y --- linux-6.17.orig/mm/Makefile +++ linux-6.17/mm/Makefile @@ -119,6 +119,9 @@ obj-$(CONFIG_ZPOOL) += zpool.o obj-$(CONFIG_ZSMALLOC) += zsmalloc.o obj-$(CONFIG_GENERIC_EARLY_IOREMAP) += early_ioremap.o obj-$(CONFIG_CMA) += cma.o +ifdef CONFIG_SYSFS +obj-$(CONFIG_CMA) += cma_sysfs.o +endif obj-$(CONFIG_NUMA) += numa.o obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o obj-$(CONFIG_NUMA_EMU) += numa_emulation.o @@ -127,7 +130,6 @@ obj-$(CONFIG_PAGE_EXTENSION) += page_ext obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o obj-$(CONFIG_CMA_DEBUGFS) += cma_debug.o obj-$(CONFIG_SECRETMEM) += secretmem.o -obj-$(CONFIG_CMA_SYSFS) += cma_sysfs.o obj-$(CONFIG_USERFAULTFD) += userfaultfd.o obj-$(CONFIG_IDLE_PAGE_TRACKING) += page_idle.o obj-$(CONFIG_DEBUG_PAGEALLOC) += debug_page_alloc.o --- linux-6.17.orig/mm/cma.h +++ linux-6.17/mm/cma.h @@ -49,7 +49,7 @@ struct cma { char name[CMA_MAX_NAME]; int nranges; struct cma_memrange ranges[CMA_MAX_RANGES]; -#ifdef CONFIG_CMA_SYSFS +#ifdef CONFIG_SYSFS /* the number of CMA page successful allocations */ atomic64_t nr_pages_succeeded; /* the number of CMA page allocation failures */ @@ -80,7 +80,7 @@ static inline unsigned long cma_bitmap_m return cmr->count >> cma->order_per_bit; } -#ifdef CONFIG_CMA_SYSFS +#ifdef CONFIG_SYSFS void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages); void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages); void cma_sysfs_account_release_pages(struct cma *cma, unsigned long nr_pages); --- linux-6.17.orig/mm/Kconfig +++ linux-6.17/mm/Kconfig @@ -981,13 +981,6 @@ config CMA_DEBUGFS help Turns on the DebugFS interface for CMA. -config CMA_SYSFS - bool "CMA information through sysfs interface" - depends on CMA && SYSFS - help - This option exposes some sysfs attributes to get information - from CMA. - config CMA_AREAS int "Maximum count of the CMA areas" depends on CMA -- Jean Delvare SUSE L3 Support