diff mbox series

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

Message ID 20220810050712.9539-4-lukas.bulwahn@gmail.com (mailing list archive)
State New, archived
Headers show
Series update the xen config fragments | expand

Commit Message

Lukas Bulwahn Aug. 10, 2022, 5:07 a.m. UTC
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.

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
---
 arch/x86/configs/xen.config | 3 ---
 kernel/configs/xen.config   | 1 +
 2 files changed, 1 insertion(+), 3 deletions(-)

Comments

Oleksandr Tyshchenko Aug. 10, 2022, 11:32 a.m. UTC | #1
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@gmail.com>
> ---
>   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
Lukas Bulwahn Aug. 17, 2022, 4:26 a.m. UTC | #2
On Wed, Aug 10, 2022 at 1:32 PM Oleksandr Tyshchenko
<Oleksandr_Tyshchenko@epam.com> wrote:
>
>
> 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.
>

Thanks for the in-depth investigation and explanation. For now, let us
drop this patch here and keep the configs as they are.

Lukas
diff mbox series

Patch

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