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.
Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
---
arch/arm64/Kconfig | 1 -
arch/loongarch/Kconfig | 1 -
arch/powerpc/Kconfig | 1 -
arch/riscv/Kconfig | 1 -
arch/s390/Kconfig | 1 -
arch/x86/Kconfig | 1 -
mm/Kconfig | 9 +++------
7 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 38dba5f7e4d2..bcd9f5bc66e2 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -16,7 +16,6 @@ config ARM64
select ARCH_BINFMT_ELF_STATE
select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
select ARCH_ENABLE_MEMORY_HOTPLUG
- select ARCH_ENABLE_MEMORY_HOTREMOVE
select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
select ARCH_HAS_CACHE_LINE_SIZE
diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index d211c6572b0a..dbf65ad512f1 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -12,7 +12,6 @@ config LOONGARCH
select ARCH_NEEDS_DEFER_KASAN
select ARCH_DISABLE_KASAN_INLINE
select ARCH_ENABLE_MEMORY_HOTPLUG
- select ARCH_ENABLE_MEMORY_HOTREMOVE
select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
select ARCH_HAS_CPU_FINALIZE_INIT
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index ad7a2fe63a2a..9f3417b75b2b 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -126,7 +126,6 @@ config PPC
select ARCH_DISABLE_KASAN_INLINE if PPC_RADIX_MMU
select ARCH_DMA_DEFAULT_COHERENT if !NOT_COHERENT_CACHE
select ARCH_ENABLE_MEMORY_HOTPLUG
- select ARCH_ENABLE_MEMORY_HOTREMOVE
select ARCH_HAS_COPY_MC if PPC64
select ARCH_HAS_CURRENT_STACK_POINTER
select ARCH_HAS_DEBUG_VIRTUAL
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 90c531e6abf5..61a9d8d3ea64 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -21,7 +21,6 @@ config RISCV
select ARCH_DMA_DEFAULT_COHERENT
select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION
select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM_VMEMMAP
- select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG
select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
select ARCH_HAS_BINFMT_FLAT
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index edc927d9e85a..d01800962d84 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -85,7 +85,6 @@ config S390
select ARCH_32BIT_USTAT_F_TINODE
select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM
- select ARCH_ENABLE_MEMORY_HOTREMOVE
select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
select ARCH_HAS_CC_CAN_LINK
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e2df1b147184..c290fe363f27 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -69,7 +69,6 @@ config X86
select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION
select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64
- select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG
select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 || X86_PAE)
select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
diff --git a/mm/Kconfig b/mm/Kconfig
index c012944938a7..b2e21d873d3f 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -465,9 +465,6 @@ config HAVE_BOOTMEM_INFO_NODE
config ARCH_ENABLE_MEMORY_HOTPLUG
bool
-config ARCH_ENABLE_MEMORY_HOTREMOVE
- bool
-
# eventually, we can have this option just 'select SPARSEMEM'
menuconfig MEMORY_HOTPLUG
bool "Memory hotplug"
@@ -540,8 +537,8 @@ endchoice
config MEMORY_HOTREMOVE
bool "Allow for memory hot remove"
select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64)
- depends on MEMORY_HOTPLUG && ARCH_ENABLE_MEMORY_HOTREMOVE
- depends on MIGRATION
+ depends on MEMORY_HOTPLUG
+ select MIGRATION
config MHP_MEMMAP_ON_MEMORY
def_bool y
@@ -636,7 +633,7 @@ config PAGE_REPORTING
config MIGRATION
bool "Page migration"
default y
- depends on (NUMA || ARCH_ENABLE_MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU
+ depends on (NUMA || MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU
help
Allows the migration of the physical location of pages of processes
while the virtual addresses are not changed. This is useful in
--
2.43.0
On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: > 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. > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org> > --- > arch/arm64/Kconfig | 1 - > arch/loongarch/Kconfig | 1 - > arch/powerpc/Kconfig | 1 - > arch/riscv/Kconfig | 1 - > arch/s390/Kconfig | 1 - > arch/x86/Kconfig | 1 - > mm/Kconfig | 9 +++------ > 7 files changed, 3 insertions(+), 12 deletions(-) > > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index edc927d9e85a..d01800962d84 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -85,7 +85,6 @@ config S390 > select ARCH_32BIT_USTAT_F_TINODE > select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE > select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM Not really related, but s390 does not have anything but SPARSEMEM_VMEMMAP. > - select ARCH_ENABLE_MEMORY_HOTREMOVE > select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 > select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE > select ARCH_HAS_CC_CAN_LINK -- Sincerely yours, Mike.
>> arch/arm64/Kconfig | 1 - >> arch/loongarch/Kconfig | 1 - >> arch/powerpc/Kconfig | 1 - >> arch/riscv/Kconfig | 1 - >> arch/s390/Kconfig | 1 - >> arch/x86/Kconfig | 1 - >> mm/Kconfig | 9 +++------ >> 7 files changed, 3 insertions(+), 12 deletions(-) >> >> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig >> index edc927d9e85a..d01800962d84 100644 >> --- a/arch/s390/Kconfig >> +++ b/arch/s390/Kconfig >> @@ -85,7 +85,6 @@ config S390 >> select ARCH_32BIT_USTAT_F_TINODE >> select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE >> select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM > > Not really related, but s390 does not have anything but SPARSEMEM_VMEMMAP. yeah, spotted that as well but decided to leave it as is for now. Thanks! -- Cheers, David
On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: > 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. > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> HOTREMOVE has long been a thorn in my side, I appreciate you cleaning this up. Reviewed-by: Gregory Price <gourry@gourry.net> ~Gregory
On 3/19/26 16:24, Gregory Price wrote: > On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: >> 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. >> >> Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> > > HOTREMOVE has long been a thorn in my side, I appreciate you cleaning > this up. On a long cardrive today I was wondering: do we still need a separate MEMORY_HOTREMOVE Now we'll have config MEMORY_HOTREMOVE bool "Allow for memory hot remove" select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64) depends on MEMORY_HOTPLUG select MIGRATION I'll try to get rid of that HAVE_BOOTMEM_INFO_NODE shite next. Then it's really just MIGRATION and some sprinkled CONFIG_MEMORY_HOTREMOVE. Not a lot of code. -- Cheers, David
On 19 Mar 2026, at 14:08, David Hildenbrand (Arm) wrote: > On 3/19/26 16:24, Gregory Price wrote: >> On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: >>> 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. >>> >>> Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> >> >> HOTREMOVE has long been a thorn in my side, I appreciate you cleaning >> this up. > > On a long cardrive today I was wondering: do we still need a separate > MEMORY_HOTREMOVE You mean merge HOTREMOVE into HOTPLUG? I wondered the same. Is there a reason to only have HOTPLUG without HOTREMOVE? > > Now we'll have > > config MEMORY_HOTREMOVE > bool "Allow for memory hot remove" > select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64) > depends on MEMORY_HOTPLUG > select MIGRATION > > I'll try to get rid of that HAVE_BOOTMEM_INFO_NODE shite next. > > Then it's really just MIGRATION and some sprinkled > CONFIG_MEMORY_HOTREMOVE. Not a lot of code. Best Regards, Yan, Zi
On 3/19/26 19:12, Zi Yan wrote: > On 19 Mar 2026, at 14:08, David Hildenbrand (Arm) wrote: > >> On 3/19/26 16:24, Gregory Price wrote: >>> >>> HOTREMOVE has long been a thorn in my side, I appreciate you cleaning >>> this up. >> >> On a long cardrive today I was wondering: do we still need a separate >> MEMORY_HOTREMOVE > > You mean merge HOTREMOVE into HOTPLUG? Yes, only have a single config. > I wondered the same. Is there > a reason to only have HOTPLUG without HOTREMOVE? In the past some architectures (e.g., s390x) did not support HOTREMOVE. Then it made sense. I'm not sure if someone would want to build a kernel with HOTPLUG but not have the bit of overhead for unplug+migration. So I would guess nothing major speaks against it. -- Cheers, David
On 19 Mar 2026, at 14:15, David Hildenbrand (Arm) wrote: > On 3/19/26 19:12, Zi Yan wrote: >> On 19 Mar 2026, at 14:08, David Hildenbrand (Arm) wrote: >> >>> On 3/19/26 16:24, Gregory Price wrote: >>>> >>>> HOTREMOVE has long been a thorn in my side, I appreciate you cleaning >>>> this up. >>> >>> On a long cardrive today I was wondering: do we still need a separate >>> MEMORY_HOTREMOVE >> >> You mean merge HOTREMOVE into HOTPLUG? > > Yes, only have a single config. > >> I wondered the same. Is there >> a reason to only have HOTPLUG without HOTREMOVE? > In the past some architectures (e.g., s390x) did not support HOTREMOVE. > Then it made sense. I'm not sure if someone would want to build a kernel > with HOTPLUG but not have the bit of overhead for unplug+migration. > > So I would guess nothing major speaks against it. Sounds reasonable to me. Best Regards, Yan, Zi
On Thu, Mar 19, 2026 at 11:24:27AM -0400, Gregory Price wrote: > On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: > > 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. > > > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> > > HOTREMOVE has long been a thorn in my side, I appreciate you cleaning > this up. That is quite the HOTTAKE young Gregory! (It seems my pun crimes are continuing) > > Reviewed-by: Gregory Price <gourry@gourry.net> > > ~Gregory Cheers, Lorenzo
On Thu, Mar 19, 2026 at 04:34:04PM +0000, Lorenzo Stoakes (Oracle) wrote: > On Thu, Mar 19, 2026 at 11:24:27AM -0400, Gregory Price wrote: > > On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: > > > 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. > > > > > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> > > > > HOTREMOVE has long been a thorn in my side, I appreciate you cleaning > > this up. > > That is quite the HOTTAKE young Gregory! > > (It seems my pun crimes are continuing) > :P - it's just more config cruft that always catches me cross-platform when i poke around in dax and hotplug. It'll be nice to get less automated reports from CI lol ~Gregory
On Thu, 19 Mar 2026 09:19:40 +0100 "David Hildenbrand (Arm)" <david@kernel.org> wrote: > 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. > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> Hello David, Looks good to me : -) Thank you for the patch, I hope you have a great day! Reviewed-by: Joshua Hahn <joshua.hahnjy@gmail.com>
On Thu, Mar 19, 2026 at 09:19:40AM +0100, David Hildenbrand (Arm) wrote: > 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). Makes sense! > > We'll clean up CONFIG_MIGRATION next. > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> LGTM, so: Reviewed-by: Lorenzo Stoakes (Oracle) <ljs@kernel.org> > --- > arch/arm64/Kconfig | 1 - > arch/loongarch/Kconfig | 1 - > arch/powerpc/Kconfig | 1 - > arch/riscv/Kconfig | 1 - > arch/s390/Kconfig | 1 - > arch/x86/Kconfig | 1 - > mm/Kconfig | 9 +++------ > 7 files changed, 3 insertions(+), 12 deletions(-) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 38dba5f7e4d2..bcd9f5bc66e2 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -16,7 +16,6 @@ config ARM64 > select ARCH_BINFMT_ELF_STATE > select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION > select ARCH_ENABLE_MEMORY_HOTPLUG > - select ARCH_ENABLE_MEMORY_HOTREMOVE > select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 > select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE > select ARCH_HAS_CACHE_LINE_SIZE > diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig > index d211c6572b0a..dbf65ad512f1 100644 > --- a/arch/loongarch/Kconfig > +++ b/arch/loongarch/Kconfig > @@ -12,7 +12,6 @@ config LOONGARCH > select ARCH_NEEDS_DEFER_KASAN > select ARCH_DISABLE_KASAN_INLINE > select ARCH_ENABLE_MEMORY_HOTPLUG > - select ARCH_ENABLE_MEMORY_HOTREMOVE > select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE > select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI > select ARCH_HAS_CPU_FINALIZE_INIT > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index ad7a2fe63a2a..9f3417b75b2b 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -126,7 +126,6 @@ config PPC > select ARCH_DISABLE_KASAN_INLINE if PPC_RADIX_MMU > select ARCH_DMA_DEFAULT_COHERENT if !NOT_COHERENT_CACHE > select ARCH_ENABLE_MEMORY_HOTPLUG > - select ARCH_ENABLE_MEMORY_HOTREMOVE > select ARCH_HAS_COPY_MC if PPC64 > select ARCH_HAS_CURRENT_STACK_POINTER > select ARCH_HAS_DEBUG_VIRTUAL > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 90c531e6abf5..61a9d8d3ea64 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -21,7 +21,6 @@ config RISCV > select ARCH_DMA_DEFAULT_COHERENT > select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION > select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM_VMEMMAP > - select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG > select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 > select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE > select ARCH_HAS_BINFMT_FLAT > diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig > index edc927d9e85a..d01800962d84 100644 > --- a/arch/s390/Kconfig > +++ b/arch/s390/Kconfig > @@ -85,7 +85,6 @@ config S390 > select ARCH_32BIT_USTAT_F_TINODE > select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE > select ARCH_ENABLE_MEMORY_HOTPLUG if SPARSEMEM > - select ARCH_ENABLE_MEMORY_HOTREMOVE > select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 > select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE > select ARCH_HAS_CC_CAN_LINK > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > index e2df1b147184..c290fe363f27 100644 > --- a/arch/x86/Kconfig > +++ b/arch/x86/Kconfig > @@ -69,7 +69,6 @@ config X86 > select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE > select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION > select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64 > - select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG > select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 || X86_PAE) > select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE > select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI > diff --git a/mm/Kconfig b/mm/Kconfig > index c012944938a7..b2e21d873d3f 100644 > --- a/mm/Kconfig > +++ b/mm/Kconfig > @@ -465,9 +465,6 @@ config HAVE_BOOTMEM_INFO_NODE > config ARCH_ENABLE_MEMORY_HOTPLUG > bool > > -config ARCH_ENABLE_MEMORY_HOTREMOVE > - bool > - > # eventually, we can have this option just 'select SPARSEMEM' > menuconfig MEMORY_HOTPLUG > bool "Memory hotplug" > @@ -540,8 +537,8 @@ endchoice > config MEMORY_HOTREMOVE > bool "Allow for memory hot remove" > select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64) > - depends on MEMORY_HOTPLUG && ARCH_ENABLE_MEMORY_HOTREMOVE > - depends on MIGRATION > + depends on MEMORY_HOTPLUG > + select MIGRATION > > config MHP_MEMMAP_ON_MEMORY > def_bool y > @@ -636,7 +633,7 @@ config PAGE_REPORTING > config MIGRATION > bool "Page migration" > default y > - depends on (NUMA || ARCH_ENABLE_MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU > + depends on (NUMA || MEMORY_HOTREMOVE || COMPACTION || CMA) && MMU > help > Allows the migration of the physical location of pages of processes > while the virtual addresses are not changed. This is useful in > > -- > 2.43.0 >
On 19 Mar 2026, at 4:19, David Hildenbrand (Arm) wrote: > 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. > > Signed-off-by: David Hildenbrand (Arm) <david@kernel.org> > --- > arch/arm64/Kconfig | 1 - > arch/loongarch/Kconfig | 1 - > arch/powerpc/Kconfig | 1 - > arch/riscv/Kconfig | 1 - > arch/s390/Kconfig | 1 - > arch/x86/Kconfig | 1 - > mm/Kconfig | 9 +++------ > 7 files changed, 3 insertions(+), 12 deletions(-) > Makes sense to me. Acked-by: Zi Yan <ziy@nvidia.com> Best Regards, Yan, Zi
© 2016 - 2026 Red Hat, Inc.