[RFC PATCH] memory_hotplug: disable the functionality for 32b (was: Re: [Bug 206401] kernel panic on Hyper-V after 5 minutes due to) memory hot-add

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue 18-02-20 18:19:00, kkabe@xxxxxxxxxxx wrote:
> mhocko@xxxxxxxxxx sed in <20200218084700.GD21113@xxxxxxxxxxxxxx>
> 
> >> On Tue 18-02-20 15:24:48, kkabe@xxxxxxxxxxx wrote:
> >> [...]
> >> > Tried out the above patch.
> >> > It seems to be working; no panic, total memory has increased and
> >> > the hot-added memory is added as HIGHMEM.
> >> 
> >> I was about to post a patch to mark hotplug broken on 32b but it seems
> >> you do care about this setup. Could you describe your usecase please?
> 
> My usecase is testing out the kernel on Hyper-V before loading it on
> real i686 machine. Hyper-V machine is faster to skim out other bugs.
> So memory hot-add is not a must requirement for me,
> but having hot-add may be handy to see the application memory requirement.
> (as in the anaconda test revealed)

OK, thanks for the clarification. I am not sure that this qualifies
as a sufficient reason to maintain the code though.

> If we're disabling it, we have to announce it somewhere;
> where is appropriate? `modinfo hv_balloon`'s "hot_add" description?

This should behave the same way as when the CONFIG_MEMORY_HOTPLULG is
not enabled. And from a very cursory look hv_balloon.c already checks
for the config.

---
>From 562f21abeda508f199c34358e50fbaa518cd5ed8 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@xxxxxxxx>
Date: Tue, 18 Feb 2020 08:04:13 +0100
Subject: [PATCH] memory_hotplug: disable the functionality for 32b

Memory hotlug is broken for 32b systems at least since c6f03e2903c9
("mm, memory_hotplug: remove zone restrictions") which has considerably
reworked how can be memory associated with movable/kernel zones. The
same is not really trivial to achieve in 32b where only lowmem is the
kernel zone. While we can tweak this immediate problem around there are
likely other land mines hidden at other places.

It is also quite dubious that there is a real usecase for the memory
hotplug on 32b in the first place. Low memory is just too small to be
hotplugable (for hot add) and generally unusable for hotremove. Adding
more memory to highmem is also dubious because it would increase the
low mem or vmalloc space pressure for memmaps.

Restrict the functionality to 64b systems. This will help future
development to focus on usecases that have real life application.  We
can remove this restriction in future in presence of a real life usecase
of course but until then make it explicit that hotplug on 32b is broken
and requires a non trivial amount of work to fix.

Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
---
 mm/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mm/Kconfig b/mm/Kconfig
index ab80933be65f..2d5fe9e92969 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -154,6 +154,7 @@ config MEMORY_HOTPLUG
 	bool "Allow for memory hot-add"
 	depends on SPARSEMEM || X86_64_ACPI_NUMA
 	depends on ARCH_ENABLE_MEMORY_HOTPLUG
+	depends on 64BIT || BROKEN
 
 config MEMORY_HOTPLUG_SPARSE
 	def_bool y
-- 
2.24.1

-- 
Michal Hocko
SUSE Labs




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux