Re: [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 02/18/20 at 11:05am, Michal Hocko wrote:
> 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>

No objection to this, ack.
Acked-by: Baoquan He <bhe@xxxxxxxxxx>

At least in our distros, we have taken the i386 off from our ARCH lists
for a very long time, hence I personally haven't followed i386 code for
a long time either. This can save our time when maintain the mem hotplug
code. Thanks for making this patch.

Thanks
Baoquan

> ---
>  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