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