Re: [PATCH 3/4] xen: move XEN_BALLOON_MEMORY_HOTPLUG to generic config

From: Oleksandr Tyshchenko
Date: Wed Aug 10 2022 - 09:12:31 EST



On 10.08.22 08:07, Lukas Bulwahn wrote:

Hello Lukas, all

> While reviewing arch/x86/configs/xen.config, I noticed the following
> note in this file:
>
> '# depends on MEMORY_HOTPLUG, arm64 doesn't enable this yet,
> '# move to generic config if it ever does.
> CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
>
> Commit 6c6685055a28 ("kconfig: add xenconfig defconfig helper") in June
> 2015 adds this note. Fortunately, commit 4ab215061554 ("arm64: Add memory
> hotplug support") from December 2018 adds the memory hotplug in arm64, so
> the precondition of this note above is now met.
>
> Move setting the config XEN_BALLOON_MEMORY_HOTPLUG into the generic
> xen.config now.


I might have missed something but I have never heard of anyone using
XEN_BALLOON_MEMORY_HOTPLUG on Arm.

Looking into the code, I am afraid, CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
won't be functional on Arm without reworking resource allocation logic
in drivers/xen/ballon.c at least, since system "iomem_resource" cannot
be used on Arm to allocate unused memory region(s), please see
additional_memory_resource(). I might be wrong, but it feels to me that
here we would need a similar logic like in
drivers/xen/unpopulated-alloc.c which is functional on Arm since it uses
specific Xen resource (on x86 it is just an iomem_resource, but on Arm
it contains provided by the hypervisor extended regions).

I am not aware of anyone working on it, so I wouldn't enable that
support on Arm by default until the code is updated.



>
> Signed-off-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx>
> ---
> arch/x86/configs/xen.config | 3 ---
> kernel/configs/xen.config | 1 +
> 2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/arch/x86/configs/xen.config b/arch/x86/configs/xen.config
> index 8a6c88f48e75..024817bc4f0e 100644
> --- a/arch/x86/configs/xen.config
> +++ b/arch/x86/configs/xen.config
> @@ -23,6 +23,3 @@ CONFIG_XEN_ACPI_PROCESSOR=m
> CONFIG_XEN_PCIDEV_BACKEND=m
> # x86 specific frontend drivers
> CONFIG_XEN_PCIDEV_FRONTEND=m
> -# depends on MEMORY_HOTPLUG, arm64 doesn't enable this yet,
> -# move to generic config if it ever does.
> -CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
> diff --git a/kernel/configs/xen.config b/kernel/configs/xen.config
> index 436f806aa1ed..ea84d5b3122d 100644
> --- a/kernel/configs/xen.config
> +++ b/kernel/configs/xen.config
> @@ -34,6 +34,7 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
> CONFIG_XEN_SCSI_FRONTEND=m
> # others
> CONFIG_XEN_BALLOON=y
> +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y
> CONFIG_XEN_DEV_EVTCHN=m
> CONFIG_XEN_BLKDEV_FRONTEND=m
> CONFIG_XEN_NETDEV_FRONTEND=m

--
Regards,

Oleksandr Tyshchenko