Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm: remove CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE

Patch series "mm: remove CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE and cleanup
CONFIG_MIGRATION".

While working on memory hotplug code cleanups, I realized that
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE is not really required anymore.

Changing that revealed some rather nasty looking CONFIG_MIGRATION
handling.

Let's clean that up by introducing a dedicated CONFIG_NUMA_MIGRATION
option and reducing the dependencies that CONFIG_MIGRATION has.


This patch (of 2):

All architectures that select CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE also
select CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG. So we can just remove
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE.

For CONFIG_MIGRATION, make it depend on CONFIG_MEMORY_HOTREMOVE instead,
and make CONFIG_MEMORY_HOTREMOVE select CONFIG_MIGRATION (just like
CONFIG_CMA and CONFIG_COMPACTION already do).

We'll clean up CONFIG_MIGRATION next.

Link: https://lkml.kernel.org/r/20260319-config_migration-v1-0-42270124966f@kernel.org
Link: https://lkml.kernel.org/r/20260319-config_migration-v1-1-42270124966f@kernel.org
Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
Acked-by: Zi Yan <ziy@nvidia.com>
Reviewed-by: Lorenzo Stoakes (Oracle) <ljs@kernel.org>
Reviewed-by: Joshua Hahn <joshua.hahnjy@gmail.com>
Reviewed-by: Gregory Price <gourry@gourry.net>
Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Alexandre Ghiti <alex@ghiti.fr>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: "Borislav Petkov (AMD)" <bp@alien8.de>
Cc: Byungchul Park <byungchul@sk.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: "Huang, Ying" <ying.huang@linux.alibaba.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Rakie Kim <rakie.kim@sk.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

David Hildenbrand (Arm) and committed by
Andrew Morton
078f80f9 738de20c

+3 -12
-1
arch/arm64/Kconfig
··· 16 16 select ARCH_BINFMT_ELF_STATE 17 17 select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION 18 18 select ARCH_ENABLE_MEMORY_HOTPLUG 19 - select ARCH_ENABLE_MEMORY_HOTREMOVE 20 19 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 21 20 select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE 22 21 select ARCH_HAS_CACHE_LINE_SIZE
-1
arch/loongarch/Kconfig
··· 12 12 select ARCH_NEEDS_DEFER_KASAN 13 13 select ARCH_DISABLE_KASAN_INLINE 14 14 select ARCH_ENABLE_MEMORY_HOTPLUG 15 - select ARCH_ENABLE_MEMORY_HOTREMOVE 16 15 select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE 17 16 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 18 17 select ARCH_HAS_CPU_FINALIZE_INIT
-1
arch/powerpc/Kconfig
··· 126 126 select ARCH_DISABLE_KASAN_INLINE if PPC_RADIX_MMU 127 127 select ARCH_DMA_DEFAULT_COHERENT if !NOT_COHERENT_CACHE 128 128 select ARCH_ENABLE_MEMORY_HOTPLUG 129 - select ARCH_ENABLE_MEMORY_HOTREMOVE 130 129 select ARCH_HAS_COPY_MC if PPC64 131 130 select ARCH_HAS_CURRENT_STACK_POINTER 132 131 select ARCH_HAS_DEBUG_VIRTUAL
-1
arch/riscv/Kconfig
··· 21 21 select ARCH_DMA_DEFAULT_COHERENT 22 22 select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION 23 23 select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM_VMEMMAP 24 - select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG 25 24 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 26 25 select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE 27 26 select ARCH_HAS_BINFMT_FLAT
-1
arch/s390/Kconfig
··· 85 85 select ARCH_32BIT_USTAT_F_TINODE 86 86 select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE 87 87 select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM 88 - select ARCH_ENABLE_MEMORY_HOTREMOVE 89 88 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 90 89 select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE 91 90 select ARCH_HAS_CC_CAN_LINK
-1
arch/x86/Kconfig
··· 69 69 select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE 70 70 select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION 71 71 select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64 72 - select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG 73 72 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 || X86_PAE) 74 73 select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE 75 74 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
+3 -6
mm/Kconfig
··· 465 465 config ARCH_ENABLE_MEMORY_HOTPLUG 466 466 bool 467 467 468 - config ARCH_ENABLE_MEMORY_HOTREMOVE 469 - bool 470 - 471 468 # eventually, we can have this option just 'select SPARSEMEM' 472 469 menuconfig MEMORY_HOTPLUG 473 470 bool "Memory hotplug" ··· 537 540 config MEMORY_HOTREMOVE 538 541 bool "Allow for memory hot remove" 539 542 select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64) 540 - depends on MEMORY_HOTPLUG && ARCH_ENABLE_MEMORY_HOTREMOVE 541 - depends on MIGRATION 543 + depends on MEMORY_HOTPLUG 544 + select MIGRATION 542 545 543 546 config MHP_MEMMAP_ON_MEMORY 544 547 def_bool y ··· 633 636 config MIGRATION 634 637 bool "Page migration" 635 638 default y 636 - depends on (NUMA || ARCH_ENABLE_MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU 639 + depends on (NUMA || MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU 637 640 help 638 641 Allows the migration of the physical location of pages of processes 639 642 while the virtual addresses are not changed. This is useful in