mbox series

[v2,00/11] ARM virt: ACPI memory hotplug support

Message ID 20190308114218.26692-1-shameerali.kolothum.thodi@huawei.com (mailing list archive)
Headers show
Series ARM virt: ACPI memory hotplug support | expand

Message

Shameerali Kolothum Thodi March 8, 2019, 11:42 a.m. UTC
This series is an attempt to provide device memory hotplug support 
on ARM virt platform. This is based on Eric's recent works here[1]
and carries some of the pc-dimm related patches dropped from his
series.

The kernel support for arm64 memory hot add was added recently by
Robin and hence the guest kernel should be => 5.0-rc1.

NVDIM support is not included currently as we still have an unresolved
issue while hot adding NVDIMM[2]. However NVDIMM cold plug patches
can be included, but not done for now, for keeping it simple.

This makes use of GED device to sent hotplug ACPI events to the
Guest. GED code is based on Nemu. Thanks to the efforts of Samuel and
Sebastien to add the hardware-reduced support to Nemu using GED
device[3]. (Please shout if I got the author/signed-off wrong for
those patches or missed any names).

This series can be applied on top of Eric's branch here[4].

This is sanity tested on a HiSilicon ARM64 platform and appreciate
any further testing.

Thanks,
Shameer

[1] https://patchwork.kernel.org/cover/10837565/
[2] https://patchwork.kernel.org/cover/10783589/
[3] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/ged.c
[4] https://github.com/eauger/qemu/tree/v3.1.0-extended-memmap-v12


RFC --> v2

-Use GED device instead of GPIO for ACPI hotplug events.
-Removed NVDIMM support for now.
-Includes dropped patches from Eric's v9 series.


Eric Auger (1):
  hw/arm/virt: Add memory hotplug framework

Samuel Ortiz (3):
  hw/acpi: Do not create memory hotplug method when handler is not
    defined
  hw/arm/virt: Add virtual ACPI device
  hw/acpi: Add ACPI Generic Event Device Support

Sebastien Boeuf (1):
  hw/acpi: Move constant definitions to header files

Shameer Kolothum (6):
  hw/acpi: Make ACPI IO address space configurable
  hw/arm/virt: Add ACPI support for device memory cold-plug
  hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
  hw/arm/boot: Expose the PC-DIMM nodes in the DT
  hw/arm/virt: Add GED device configuration and build aml
  hw/arm/virt: Add GED irq routing and Enable memory hotplug

 default-configs/arm-softmmu.mak  |   4 +
 hw/acpi/Makefile.objs            |   1 +
 hw/acpi/ged.c                    | 198 +++++++++++++++++++++++++++++++++++++++
 hw/acpi/memory_hotplug.c         |  58 ++++--------
 hw/arm/Makefile.objs             |   2 +-
 hw/arm/boot.c                    |  42 +++++++++
 hw/arm/virt-acpi-build.c         |  31 ++++++
 hw/arm/virt-acpi.c               | 161 +++++++++++++++++++++++++++++++
 hw/arm/virt.c                    |  93 +++++++++++++++++-
 hw/i386/acpi-build.c             |   3 +-
 include/hw/acpi/ged.h            |  61 ++++++++++++
 include/hw/acpi/memory_hotplug.h |  31 +++++-
 include/hw/arm/virt.h            |   8 ++
 13 files changed, 649 insertions(+), 44 deletions(-)
 create mode 100644 hw/acpi/ged.c
 create mode 100644 hw/arm/virt-acpi.c
 create mode 100644 include/hw/acpi/ged.h

Comments

Eric Auger March 8, 2019, 3:54 p.m. UTC | #1
Hi Shameer,
On 3/8/19 12:42 PM, Shameer Kolothum wrote:
> This series is an attempt to provide device memory hotplug support 
> on ARM virt platform. This is based on Eric's recent works here[1]
> and carries some of the pc-dimm related patches dropped from his
> series.
> 
> The kernel support for arm64 memory hot add was added recently by
> Robin and hence the guest kernel should be => 5.0-rc1.
> 
> NVDIM support is not included currently as we still have an unresolved
s/NVDIM/NVDIMM
> issue while hot adding NVDIMM[2]. However NVDIMM cold plug patches
> can be included, but not done for now, for keeping it simple.
> 
> This makes use of GED device to sent hotplug ACPI events to the
> Guest. GED code is based on Nemu. Thanks to the efforts of Samuel and
> Sebastien to add the hardware-reduced support to Nemu using GED
> device[3]. (Please shout if I got the author/signed-off wrong for
> those patches or missed any names).
> 
> This series can be applied on top of Eric's branch here[4].
> 
> This is sanity tested on a HiSilicon ARM64 platform and appreciate
> any further testing.
> 
> Thanks,
> Shameer
> 
> [1] https://patchwork.kernel.org/cover/10837565/
> [2] https://patchwork.kernel.org/cover/10783589/
> [3] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/ged.c
> [4] https://github.com/eauger/qemu/tree/v3.1.0-extended-memmap-v12

You have a minor conflict wrt upstream due to

7c28b925b7  build: convert pci.mak to Kconfig

which adds CONFIG_LSI_SCSI_PCI=y in default-configs/arm-softmmu.mak

Thanks

Eric

> 
> 
> RFC --> v2
> 
> -Use GED device instead of GPIO for ACPI hotplug events.
> -Removed NVDIMM support for now.
> -Includes dropped patches from Eric's v9 series.
> 
> 
> Eric Auger (1):
>   hw/arm/virt: Add memory hotplug framework
> 
> Samuel Ortiz (3):
>   hw/acpi: Do not create memory hotplug method when handler is not
>     defined
>   hw/arm/virt: Add virtual ACPI device
>   hw/acpi: Add ACPI Generic Event Device Support
> 
> Sebastien Boeuf (1):
>   hw/acpi: Move constant definitions to header files
> 
> Shameer Kolothum (6):
>   hw/acpi: Make ACPI IO address space configurable
>   hw/arm/virt: Add ACPI support for device memory cold-plug
>   hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
>   hw/arm/boot: Expose the PC-DIMM nodes in the DT
>   hw/arm/virt: Add GED device configuration and build aml
>   hw/arm/virt: Add GED irq routing and Enable memory hotplug
> 
>  default-configs/arm-softmmu.mak  |   4 +
>  hw/acpi/Makefile.objs            |   1 +
>  hw/acpi/ged.c                    | 198 +++++++++++++++++++++++++++++++++++++++
>  hw/acpi/memory_hotplug.c         |  58 ++++--------
>  hw/arm/Makefile.objs             |   2 +-
>  hw/arm/boot.c                    |  42 +++++++++
>  hw/arm/virt-acpi-build.c         |  31 ++++++
>  hw/arm/virt-acpi.c               | 161 +++++++++++++++++++++++++++++++
>  hw/arm/virt.c                    |  93 +++++++++++++++++-
>  hw/i386/acpi-build.c             |   3 +-
>  include/hw/acpi/ged.h            |  61 ++++++++++++
>  include/hw/acpi/memory_hotplug.h |  31 +++++-
>  include/hw/arm/virt.h            |   8 ++
>  13 files changed, 649 insertions(+), 44 deletions(-)
>  create mode 100644 hw/acpi/ged.c
>  create mode 100644 hw/arm/virt-acpi.c
>  create mode 100644 include/hw/acpi/ged.h
>
Shameerali Kolothum Thodi March 8, 2019, 4 p.m. UTC | #2
> -----Original Message-----
> From: Auger Eric [mailto:eric.auger@redhat.com]
> Sent: 08 March 2019 15:54
> To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>;
> qemu-devel@nongnu.org; qemu-arm@nongnu.org; imammedo@redhat.com;
> peter.maydell@linaro.org; shannon.zhaosl@gmail.com;
> sameo@linux.intel.com; sebastien.boeuf@intel.com
> Cc: Linuxarm <linuxarm@huawei.com>; xuwei (O) <xuwei5@huawei.com>
> Subject: Re: [PATCH v2 00/11] ARM virt: ACPI memory hotplug support
> 
> Hi Shameer,
> On 3/8/19 12:42 PM, Shameer Kolothum wrote:
> > This series is an attempt to provide device memory hotplug support on
> > ARM virt platform. This is based on Eric's recent works here[1] and
> > carries some of the pc-dimm related patches dropped from his series.
> >
> > The kernel support for arm64 memory hot add was added recently by
> > Robin and hence the guest kernel should be => 5.0-rc1.
> >
> > NVDIM support is not included currently as we still have an unresolved
> s/NVDIM/NVDIMM
> > issue while hot adding NVDIMM[2]. However NVDIMM cold plug patches can
> > be included, but not done for now, for keeping it simple.
> >
> > This makes use of GED device to sent hotplug ACPI events to the Guest.
> > GED code is based on Nemu. Thanks to the efforts of Samuel and
> > Sebastien to add the hardware-reduced support to Nemu using GED
> > device[3]. (Please shout if I got the author/signed-off wrong for
> > those patches or missed any names).
> >
> > This series can be applied on top of Eric's branch here[4].
> >
> > This is sanity tested on a HiSilicon ARM64 platform and appreciate any
> > further testing.
> >
> > Thanks,
> > Shameer
> >
> > [1] https://patchwork.kernel.org/cover/10837565/
> > [2] https://patchwork.kernel.org/cover/10783589/
> > [3] https://github.com/intel/nemu/blob/topic/virt-x86/hw/acpi/ged.c
> > [4] https://github.com/eauger/qemu/tree/v3.1.0-extended-memmap-v12
> 
> You have a minor conflict wrt upstream due to
> 
> 7c28b925b7  build: convert pci.mak to Kconfig
> 
> which adds CONFIG_LSI_SCSI_PCI=y in default-configs/arm-softmmu.mak

Thanks Eric. Noted

Cheers,
Shameer

> >
> >
> > RFC --> v2
> >
> > -Use GED device instead of GPIO for ACPI hotplug events.
> > -Removed NVDIMM support for now.
> > -Includes dropped patches from Eric's v9 series.
> >
> >
> > Eric Auger (1):
> >   hw/arm/virt: Add memory hotplug framework
> >
> > Samuel Ortiz (3):
> >   hw/acpi: Do not create memory hotplug method when handler is not
> >     defined
> >   hw/arm/virt: Add virtual ACPI device
> >   hw/acpi: Add ACPI Generic Event Device Support
> >
> > Sebastien Boeuf (1):
> >   hw/acpi: Move constant definitions to header files
> >
> > Shameer Kolothum (6):
> >   hw/acpi: Make ACPI IO address space configurable
> >   hw/arm/virt: Add ACPI support for device memory cold-plug
> >   hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
> >   hw/arm/boot: Expose the PC-DIMM nodes in the DT
> >   hw/arm/virt: Add GED device configuration and build aml
> >   hw/arm/virt: Add GED irq routing and Enable memory hotplug
> >
> >  default-configs/arm-softmmu.mak  |   4 +
> >  hw/acpi/Makefile.objs            |   1 +
> >  hw/acpi/ged.c                    | 198
> +++++++++++++++++++++++++++++++++++++++
> >  hw/acpi/memory_hotplug.c         |  58 ++++--------
> >  hw/arm/Makefile.objs             |   2 +-
> >  hw/arm/boot.c                    |  42 +++++++++
> >  hw/arm/virt-acpi-build.c         |  31 ++++++
> >  hw/arm/virt-acpi.c               | 161
> +++++++++++++++++++++++++++++++
> >  hw/arm/virt.c                    |  93 +++++++++++++++++-
> >  hw/i386/acpi-build.c             |   3 +-
> >  include/hw/acpi/ged.h            |  61 ++++++++++++
> >  include/hw/acpi/memory_hotplug.h |  31 +++++-
> >  include/hw/arm/virt.h            |   8 ++
> >  13 files changed, 649 insertions(+), 44 deletions(-)  create mode
> > 100644 hw/acpi/ged.c  create mode 100644 hw/arm/virt-acpi.c  create
> > mode 100644 include/hw/acpi/ged.h
> >