mbox series

[PATCH-for-4.2,v11,00/11] ARM virt: ACPI memory hotplug support

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

Message

Shameer Kolothum Sept. 18, 2019, 1:06 p.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 is sanity tested on a HiSilicon ARM64 platform and appreciate
any further testing.

Note:
Attempted adding dimm_pxm test case to bios-tables-test for arm/virt.
But noticed the issue decribed here[5]. This is under investigation 
now.

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] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html
[5] https://www.mail-archive.com/qemu-devel@nongnu.org/msg632651.html

v10 --> v11
-Changed patch #10 to update bios-tables-test-allowed-diff.h with a
 list of expected ACPI tables.
-GED document changed to rst format (patch #9)
-Addressed comments from Igor (patch #3 & #5)
-Igor's R-by to #7, #8 & #11.

v9 --> v10
 -Fix for "make check" failure on x86_64(Patch #1).
 -Minor updates based on Eric's comments.
 -Dropped patch "hw/arm/virt: Add 4.2 machine type" as this is already
  in master now.
 -Added R-by tags by Eric.

v8 --> v9
 -Changes related to GED being a TYPE_SYS_BUS_DEVICE now.
 -Re-arranged patches 8 and 9.
 -Added GED ABI documentation(patch #10).
 -Added numamem and memhp tests to arm/virt(#11 and #12)
 -Dropped few R-by tags as code has changed a bit.
 -Please see Individual patch history for details.
 
v7 --> v8
 -Addressed comments from Igor.Please see individual patches.
 -Updated bios-tables-test-allowed-diff.h to avoid "make check"
  failure (patch #6) and dropped patch #10
 -Added Igor's R-by to patches 4 & 5.
 -Dropped Erics's R-by from patch #9 for now.

v6 --> v7
- Added 4.2 machine support and restricted GED creation for < 4.2
  This is to address the migration test fail reported by Eric.
- Included "tests: Update DSDT ACPI table.." patch(#10) from Eric
  to fix the "make check" bios-tables-test failure.
  
v5 --> v6

-Addressed comments from Eric.
-Added R-by from Eric and Igor.

v4 --> v5
-Removed gsi/ged-irq routing in virt.
-Added Migration support.
-Dropped support for DT coldplug case based on the discussions
 here[4]
-Added system_powerdown support through GED.

v3 --> v4
Addressed comments from Igor and Eric,
-Renamed "virt-acpi" to "acpi-ged".
-Changed ged device parent to TYPE_DEVICE.
-Introduced DT memory node property "hotpluggable" to resolve device
 memory being treated as early boot memory issue(patch #7).
-Combined patches #3 and #9 from v3 into #3.

v2 --> v3

Addressed comments from Igor and Eric,
-Made virt acpi device platform independent and moved
 to hw/acpi/generic_event_device.c
-Moved ged specific code into hw/acpi/generic_event_device.c
-Introduced an opt-in feature "fdt" to resolve device-memory being
 treated as early boot memory.
-Dropped patch #1 from v2.

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 (2):
  hw/acpi: Do not create memory hotplug method when handler is not
    defined
  hw/acpi: Add ACPI Generic Event Device Support

Shameer Kolothum (8):
  hw/acpi: Make ACPI IO address space configurable
  hw/arm/virt: Enable device memory cold/hot plug with ACPI boot
  hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
  hw/arm: Factor out powerdown notifier from GPIO
  hw/arm: Use GED for system_powerdown event
  docs/specs: Add ACPI GED documentation
  tests: Update ACPI tables list for upcoming arm/virt tests
  tests: Add bios tests to arm/virt

 docs/specs/acpi_hw_reduced_hotplug.rst |  70 ++++++
 docs/specs/index.rst                   |   1 +
 hw/acpi/Kconfig                        |   4 +
 hw/acpi/Makefile.objs                  |   1 +
 hw/acpi/generic_event_device.c         | 311 +++++++++++++++++++++++++
 hw/acpi/memory_hotplug.c               |  43 ++--
 hw/arm/Kconfig                         |   4 +
 hw/arm/virt-acpi-build.c               |  35 ++-
 hw/arm/virt.c                          | 124 +++++++++-
 hw/i386/acpi-build.c                   |   7 +-
 hw/i386/pc.c                           |   3 +
 include/hw/acpi/acpi_dev_interface.h   |   1 +
 include/hw/acpi/generic_event_device.h | 103 ++++++++
 include/hw/acpi/memory_hotplug.h       |   9 +-
 include/hw/arm/virt.h                  |   5 +
 include/hw/i386/pc.h                   |   3 +
 tests/bios-tables-test-allowed-diff.h  |  16 ++
 tests/bios-tables-test.c               |  49 ++++
 18 files changed, 748 insertions(+), 41 deletions(-)
 create mode 100644 docs/specs/acpi_hw_reduced_hotplug.rst
 create mode 100644 hw/acpi/generic_event_device.c
 create mode 100644 include/hw/acpi/generic_event_device.h

Comments

no-reply@patchew.org Sept. 19, 2019, 4:53 a.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20190918130633.4872-1-shameerali.kolothum.thodi@huawei.com/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

libudev           no
default devices   yes

warning: Python 2 support is deprecated
warning: Python 3 will be required for building future versions of QEMU
cross containers  no

NOTE: guest cross-compilers enabled: cc
---
Looking for expected file 'tests/data/acpi/virt/SRAT.numamem'
Looking for expected file 'tests/data/acpi/virt/SRAT'
**
ERROR:/tmp/qemu-test/src/tests/bios-tables-test.c:327:load_expected_aml: assertion failed: (exp_sdt.aml_file)
ERROR - Bail out! ERROR:/tmp/qemu-test/src/tests/bios-tables-test.c:327:load_expected_aml: assertion failed: (exp_sdt.aml_file)
make: *** [check-qtest-aarch64] Error 1
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 664, in <module>


The full log is available at
http://patchew.org/logs/20190918130633.4872-1-shameerali.kolothum.thodi@huawei.com/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org Sept. 19, 2019, 8:36 p.m. UTC | #2
Patchew URL: https://patchew.org/QEMU/20190918130633.4872-1-shameerali.kolothum.thodi@huawei.com/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

libudev           no
default devices   yes

warning: Python 2 support is deprecated
warning: Python 3 will be required for building future versions of QEMU
cross containers  no

NOTE: guest cross-compilers enabled: cc
---
Looking for expected file 'tests/data/acpi/virt/SRAT.numamem'
Looking for expected file 'tests/data/acpi/virt/SRAT'
**
ERROR:/tmp/qemu-test/src/tests/bios-tables-test.c:327:load_expected_aml: assertion failed: (exp_sdt.aml_file)
ERROR - Bail out! ERROR:/tmp/qemu-test/src/tests/bios-tables-test.c:327:load_expected_aml: assertion failed: (exp_sdt.aml_file)
make: *** [check-qtest-aarch64] Error 1
make: *** Waiting for unfinished jobs....
Could not access KVM kernel module: No such file or directory


The full log is available at
http://patchew.org/logs/20190918130633.4872-1-shameerali.kolothum.thodi@huawei.com/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
no-reply@patchew.org Sept. 20, 2019, 3:49 p.m. UTC | #3
Patchew URL: https://patchew.org/QEMU/20190918130633.4872-1-shameerali.kolothum.thodi@huawei.com/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

libudev           no
default devices   yes

warning: Python 2 support is deprecated
warning: Python 3 will be required for building future versions of QEMU
cross containers  no

NOTE: guest cross-compilers enabled: cc
---
Looking for expected file 'tests/data/acpi/virt/SRAT.numamem'
Looking for expected file 'tests/data/acpi/virt/SRAT'
**
ERROR:/tmp/qemu-test/src/tests/bios-tables-test.c:327:load_expected_aml: assertion failed: (exp_sdt.aml_file)
ERROR - Bail out! ERROR:/tmp/qemu-test/src/tests/bios-tables-test.c:327:load_expected_aml: assertion failed: (exp_sdt.aml_file)
make: *** [check-qtest-aarch64] Error 1
make: *** Waiting for unfinished jobs....
  TEST    check-qtest-x86_64: tests/vmgenid-test


The full log is available at
http://patchew.org/logs/20190918130633.4872-1-shameerali.kolothum.thodi@huawei.com/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Michael S. Tsirkin Sept. 25, 2019, 3:28 p.m. UTC | #4
On Wed, Sep 18, 2019 at 02:06:22PM +0100, 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
> 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 is sanity tested on a HiSilicon ARM64 platform and appreciate
> any further testing.
> 
> Note:
> Attempted adding dimm_pxm test case to bios-tables-test for arm/virt.
> But noticed the issue decribed here[5]. This is under investigation 
> now.
> 
> Thanks,
> Shameer


Which tree is this going through? Mine or ARM?


> [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] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html
> [5] https://www.mail-archive.com/qemu-devel@nongnu.org/msg632651.html
> 
> v10 --> v11
> -Changed patch #10 to update bios-tables-test-allowed-diff.h with a
>  list of expected ACPI tables.
> -GED document changed to rst format (patch #9)
> -Addressed comments from Igor (patch #3 & #5)
> -Igor's R-by to #7, #8 & #11.
> 
> v9 --> v10
>  -Fix for "make check" failure on x86_64(Patch #1).
>  -Minor updates based on Eric's comments.
>  -Dropped patch "hw/arm/virt: Add 4.2 machine type" as this is already
>   in master now.
>  -Added R-by tags by Eric.
> 
> v8 --> v9
>  -Changes related to GED being a TYPE_SYS_BUS_DEVICE now.
>  -Re-arranged patches 8 and 9.
>  -Added GED ABI documentation(patch #10).
>  -Added numamem and memhp tests to arm/virt(#11 and #12)
>  -Dropped few R-by tags as code has changed a bit.
>  -Please see Individual patch history for details.
>  
> v7 --> v8
>  -Addressed comments from Igor.Please see individual patches.
>  -Updated bios-tables-test-allowed-diff.h to avoid "make check"
>   failure (patch #6) and dropped patch #10
>  -Added Igor's R-by to patches 4 & 5.
>  -Dropped Erics's R-by from patch #9 for now.
> 
> v6 --> v7
> - Added 4.2 machine support and restricted GED creation for < 4.2
>   This is to address the migration test fail reported by Eric.
> - Included "tests: Update DSDT ACPI table.." patch(#10) from Eric
>   to fix the "make check" bios-tables-test failure.
>   
> v5 --> v6
> 
> -Addressed comments from Eric.
> -Added R-by from Eric and Igor.
> 
> v4 --> v5
> -Removed gsi/ged-irq routing in virt.
> -Added Migration support.
> -Dropped support for DT coldplug case based on the discussions
>  here[4]
> -Added system_powerdown support through GED.
> 
> v3 --> v4
> Addressed comments from Igor and Eric,
> -Renamed "virt-acpi" to "acpi-ged".
> -Changed ged device parent to TYPE_DEVICE.
> -Introduced DT memory node property "hotpluggable" to resolve device
>  memory being treated as early boot memory issue(patch #7).
> -Combined patches #3 and #9 from v3 into #3.
> 
> v2 --> v3
> 
> Addressed comments from Igor and Eric,
> -Made virt acpi device platform independent and moved
>  to hw/acpi/generic_event_device.c
> -Moved ged specific code into hw/acpi/generic_event_device.c
> -Introduced an opt-in feature "fdt" to resolve device-memory being
>  treated as early boot memory.
> -Dropped patch #1 from v2.
> 
> 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 (2):
>   hw/acpi: Do not create memory hotplug method when handler is not
>     defined
>   hw/acpi: Add ACPI Generic Event Device Support
> 
> Shameer Kolothum (8):
>   hw/acpi: Make ACPI IO address space configurable
>   hw/arm/virt: Enable device memory cold/hot plug with ACPI boot
>   hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
>   hw/arm: Factor out powerdown notifier from GPIO
>   hw/arm: Use GED for system_powerdown event
>   docs/specs: Add ACPI GED documentation
>   tests: Update ACPI tables list for upcoming arm/virt tests
>   tests: Add bios tests to arm/virt
> 
>  docs/specs/acpi_hw_reduced_hotplug.rst |  70 ++++++
>  docs/specs/index.rst                   |   1 +
>  hw/acpi/Kconfig                        |   4 +
>  hw/acpi/Makefile.objs                  |   1 +
>  hw/acpi/generic_event_device.c         | 311 +++++++++++++++++++++++++
>  hw/acpi/memory_hotplug.c               |  43 ++--
>  hw/arm/Kconfig                         |   4 +
>  hw/arm/virt-acpi-build.c               |  35 ++-
>  hw/arm/virt.c                          | 124 +++++++++-
>  hw/i386/acpi-build.c                   |   7 +-
>  hw/i386/pc.c                           |   3 +
>  include/hw/acpi/acpi_dev_interface.h   |   1 +
>  include/hw/acpi/generic_event_device.h | 103 ++++++++
>  include/hw/acpi/memory_hotplug.h       |   9 +-
>  include/hw/arm/virt.h                  |   5 +
>  include/hw/i386/pc.h                   |   3 +
>  tests/bios-tables-test-allowed-diff.h  |  16 ++
>  tests/bios-tables-test.c               |  49 ++++
>  18 files changed, 748 insertions(+), 41 deletions(-)
>  create mode 100644 docs/specs/acpi_hw_reduced_hotplug.rst
>  create mode 100644 hw/acpi/generic_event_device.c
>  create mode 100644 include/hw/acpi/generic_event_device.h
> 
> -- 
> 2.17.1
>
Michael S. Tsirkin Sept. 25, 2019, 3:30 p.m. UTC | #5
On Wed, Sep 18, 2019 at 02:06:22PM +0100, 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
> 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 is sanity tested on a HiSilicon ARM64 platform and appreciate
> any further testing.
> 
> Note:
> Attempted adding dimm_pxm test case to bios-tables-test for arm/virt.
> But noticed the issue decribed here[5]. This is under investigation 
> now.
> 
> Thanks,
> Shameer


in case this is going through ARM tree:

Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

> [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] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html
> [5] https://www.mail-archive.com/qemu-devel@nongnu.org/msg632651.html
> 
> v10 --> v11
> -Changed patch #10 to update bios-tables-test-allowed-diff.h with a
>  list of expected ACPI tables.
> -GED document changed to rst format (patch #9)
> -Addressed comments from Igor (patch #3 & #5)
> -Igor's R-by to #7, #8 & #11.
> 
> v9 --> v10
>  -Fix for "make check" failure on x86_64(Patch #1).
>  -Minor updates based on Eric's comments.
>  -Dropped patch "hw/arm/virt: Add 4.2 machine type" as this is already
>   in master now.
>  -Added R-by tags by Eric.
> 
> v8 --> v9
>  -Changes related to GED being a TYPE_SYS_BUS_DEVICE now.
>  -Re-arranged patches 8 and 9.
>  -Added GED ABI documentation(patch #10).
>  -Added numamem and memhp tests to arm/virt(#11 and #12)
>  -Dropped few R-by tags as code has changed a bit.
>  -Please see Individual patch history for details.
>  
> v7 --> v8
>  -Addressed comments from Igor.Please see individual patches.
>  -Updated bios-tables-test-allowed-diff.h to avoid "make check"
>   failure (patch #6) and dropped patch #10
>  -Added Igor's R-by to patches 4 & 5.
>  -Dropped Erics's R-by from patch #9 for now.
> 
> v6 --> v7
> - Added 4.2 machine support and restricted GED creation for < 4.2
>   This is to address the migration test fail reported by Eric.
> - Included "tests: Update DSDT ACPI table.." patch(#10) from Eric
>   to fix the "make check" bios-tables-test failure.
>   
> v5 --> v6
> 
> -Addressed comments from Eric.
> -Added R-by from Eric and Igor.
> 
> v4 --> v5
> -Removed gsi/ged-irq routing in virt.
> -Added Migration support.
> -Dropped support for DT coldplug case based on the discussions
>  here[4]
> -Added system_powerdown support through GED.
> 
> v3 --> v4
> Addressed comments from Igor and Eric,
> -Renamed "virt-acpi" to "acpi-ged".
> -Changed ged device parent to TYPE_DEVICE.
> -Introduced DT memory node property "hotpluggable" to resolve device
>  memory being treated as early boot memory issue(patch #7).
> -Combined patches #3 and #9 from v3 into #3.
> 
> v2 --> v3
> 
> Addressed comments from Igor and Eric,
> -Made virt acpi device platform independent and moved
>  to hw/acpi/generic_event_device.c
> -Moved ged specific code into hw/acpi/generic_event_device.c
> -Introduced an opt-in feature "fdt" to resolve device-memory being
>  treated as early boot memory.
> -Dropped patch #1 from v2.
> 
> 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 (2):
>   hw/acpi: Do not create memory hotplug method when handler is not
>     defined
>   hw/acpi: Add ACPI Generic Event Device Support
> 
> Shameer Kolothum (8):
>   hw/acpi: Make ACPI IO address space configurable
>   hw/arm/virt: Enable device memory cold/hot plug with ACPI boot
>   hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
>   hw/arm: Factor out powerdown notifier from GPIO
>   hw/arm: Use GED for system_powerdown event
>   docs/specs: Add ACPI GED documentation
>   tests: Update ACPI tables list for upcoming arm/virt tests
>   tests: Add bios tests to arm/virt
> 
>  docs/specs/acpi_hw_reduced_hotplug.rst |  70 ++++++
>  docs/specs/index.rst                   |   1 +
>  hw/acpi/Kconfig                        |   4 +
>  hw/acpi/Makefile.objs                  |   1 +
>  hw/acpi/generic_event_device.c         | 311 +++++++++++++++++++++++++
>  hw/acpi/memory_hotplug.c               |  43 ++--
>  hw/arm/Kconfig                         |   4 +
>  hw/arm/virt-acpi-build.c               |  35 ++-
>  hw/arm/virt.c                          | 124 +++++++++-
>  hw/i386/acpi-build.c                   |   7 +-
>  hw/i386/pc.c                           |   3 +
>  include/hw/acpi/acpi_dev_interface.h   |   1 +
>  include/hw/acpi/generic_event_device.h | 103 ++++++++
>  include/hw/acpi/memory_hotplug.h       |   9 +-
>  include/hw/arm/virt.h                  |   5 +
>  include/hw/i386/pc.h                   |   3 +
>  tests/bios-tables-test-allowed-diff.h  |  16 ++
>  tests/bios-tables-test.c               |  49 ++++
>  18 files changed, 748 insertions(+), 41 deletions(-)
>  create mode 100644 docs/specs/acpi_hw_reduced_hotplug.rst
>  create mode 100644 hw/acpi/generic_event_device.c
>  create mode 100644 include/hw/acpi/generic_event_device.h
> 
> -- 
> 2.17.1
>
Igor Mammedov Sept. 25, 2019, 3:37 p.m. UTC | #6
On Wed, 25 Sep 2019 11:28:42 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Wed, Sep 18, 2019 at 02:06:22PM +0100, 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
> > 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 is sanity tested on a HiSilicon ARM64 platform and appreciate
> > any further testing.
> > 
> > Note:
> > Attempted adding dimm_pxm test case to bios-tables-test for arm/virt.
> > But noticed the issue decribed here[5]. This is under investigation 
> > now.
> > 
> > Thanks,
> > Shameer
> 
> 
> Which tree is this going through? Mine or ARM?

I'd assume your tree???
(You are the wizard who knows how to handle bios-tables-test-allowed-diff.h on merge)

> 
> 
> > [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] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html
> > [5] https://www.mail-archive.com/qemu-devel@nongnu.org/msg632651.html
> > 
> > v10 --> v11
> > -Changed patch #10 to update bios-tables-test-allowed-diff.h with a
> >  list of expected ACPI tables.
> > -GED document changed to rst format (patch #9)
> > -Addressed comments from Igor (patch #3 & #5)
> > -Igor's R-by to #7, #8 & #11.
> > 
> > v9 --> v10
> >  -Fix for "make check" failure on x86_64(Patch #1).
> >  -Minor updates based on Eric's comments.
> >  -Dropped patch "hw/arm/virt: Add 4.2 machine type" as this is already
> >   in master now.
> >  -Added R-by tags by Eric.
> > 
> > v8 --> v9
> >  -Changes related to GED being a TYPE_SYS_BUS_DEVICE now.
> >  -Re-arranged patches 8 and 9.
> >  -Added GED ABI documentation(patch #10).
> >  -Added numamem and memhp tests to arm/virt(#11 and #12)
> >  -Dropped few R-by tags as code has changed a bit.
> >  -Please see Individual patch history for details.
> >  
> > v7 --> v8
> >  -Addressed comments from Igor.Please see individual patches.
> >  -Updated bios-tables-test-allowed-diff.h to avoid "make check"
> >   failure (patch #6) and dropped patch #10
> >  -Added Igor's R-by to patches 4 & 5.
> >  -Dropped Erics's R-by from patch #9 for now.
> > 
> > v6 --> v7
> > - Added 4.2 machine support and restricted GED creation for < 4.2
> >   This is to address the migration test fail reported by Eric.
> > - Included "tests: Update DSDT ACPI table.." patch(#10) from Eric
> >   to fix the "make check" bios-tables-test failure.
> >   
> > v5 --> v6
> > 
> > -Addressed comments from Eric.
> > -Added R-by from Eric and Igor.
> > 
> > v4 --> v5
> > -Removed gsi/ged-irq routing in virt.
> > -Added Migration support.
> > -Dropped support for DT coldplug case based on the discussions
> >  here[4]
> > -Added system_powerdown support through GED.
> > 
> > v3 --> v4
> > Addressed comments from Igor and Eric,
> > -Renamed "virt-acpi" to "acpi-ged".
> > -Changed ged device parent to TYPE_DEVICE.
> > -Introduced DT memory node property "hotpluggable" to resolve device
> >  memory being treated as early boot memory issue(patch #7).
> > -Combined patches #3 and #9 from v3 into #3.
> > 
> > v2 --> v3
> > 
> > Addressed comments from Igor and Eric,
> > -Made virt acpi device platform independent and moved
> >  to hw/acpi/generic_event_device.c
> > -Moved ged specific code into hw/acpi/generic_event_device.c
> > -Introduced an opt-in feature "fdt" to resolve device-memory being
> >  treated as early boot memory.
> > -Dropped patch #1 from v2.
> > 
> > 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 (2):
> >   hw/acpi: Do not create memory hotplug method when handler is not
> >     defined
> >   hw/acpi: Add ACPI Generic Event Device Support
> > 
> > Shameer Kolothum (8):
> >   hw/acpi: Make ACPI IO address space configurable
> >   hw/arm/virt: Enable device memory cold/hot plug with ACPI boot
> >   hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
> >   hw/arm: Factor out powerdown notifier from GPIO
> >   hw/arm: Use GED for system_powerdown event
> >   docs/specs: Add ACPI GED documentation
> >   tests: Update ACPI tables list for upcoming arm/virt tests
> >   tests: Add bios tests to arm/virt
> > 
> >  docs/specs/acpi_hw_reduced_hotplug.rst |  70 ++++++
> >  docs/specs/index.rst                   |   1 +
> >  hw/acpi/Kconfig                        |   4 +
> >  hw/acpi/Makefile.objs                  |   1 +
> >  hw/acpi/generic_event_device.c         | 311 +++++++++++++++++++++++++
> >  hw/acpi/memory_hotplug.c               |  43 ++--
> >  hw/arm/Kconfig                         |   4 +
> >  hw/arm/virt-acpi-build.c               |  35 ++-
> >  hw/arm/virt.c                          | 124 +++++++++-
> >  hw/i386/acpi-build.c                   |   7 +-
> >  hw/i386/pc.c                           |   3 +
> >  include/hw/acpi/acpi_dev_interface.h   |   1 +
> >  include/hw/acpi/generic_event_device.h | 103 ++++++++
> >  include/hw/acpi/memory_hotplug.h       |   9 +-
> >  include/hw/arm/virt.h                  |   5 +
> >  include/hw/i386/pc.h                   |   3 +
> >  tests/bios-tables-test-allowed-diff.h  |  16 ++
> >  tests/bios-tables-test.c               |  49 ++++
> >  18 files changed, 748 insertions(+), 41 deletions(-)
> >  create mode 100644 docs/specs/acpi_hw_reduced_hotplug.rst
> >  create mode 100644 hw/acpi/generic_event_device.c
> >  create mode 100644 include/hw/acpi/generic_event_device.h
> > 
> > -- 
> > 2.17.1
> >
Michael S. Tsirkin Sept. 25, 2019, 4:20 p.m. UTC | #7
On Wed, Sep 25, 2019 at 05:37:53PM +0200, Igor Mammedov wrote:
> On Wed, 25 Sep 2019 11:28:42 -0400
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Wed, Sep 18, 2019 at 02:06:22PM +0100, 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
> > > 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 is sanity tested on a HiSilicon ARM64 platform and appreciate
> > > any further testing.
> > > 
> > > Note:
> > > Attempted adding dimm_pxm test case to bios-tables-test for arm/virt.
> > > But noticed the issue decribed here[5]. This is under investigation 
> > > now.
> > > 
> > > Thanks,
> > > Shameer
> > 
> > 
> > Which tree is this going through? Mine or ARM?
> 
> I'd assume your tree???
> (You are the wizard who knows how to handle bios-tables-test-allowed-diff.h on merge)

Sure. Peter if you agree, could you send your ack for that please?


> > 
> > 
> > > [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] http://lists.infradead.org/pipermail/linux-arm-kernel/2019-May/651763.html
> > > [5] https://www.mail-archive.com/qemu-devel@nongnu.org/msg632651.html
> > > 
> > > v10 --> v11
> > > -Changed patch #10 to update bios-tables-test-allowed-diff.h with a
> > >  list of expected ACPI tables.
> > > -GED document changed to rst format (patch #9)
> > > -Addressed comments from Igor (patch #3 & #5)
> > > -Igor's R-by to #7, #8 & #11.
> > > 
> > > v9 --> v10
> > >  -Fix for "make check" failure on x86_64(Patch #1).
> > >  -Minor updates based on Eric's comments.
> > >  -Dropped patch "hw/arm/virt: Add 4.2 machine type" as this is already
> > >   in master now.
> > >  -Added R-by tags by Eric.
> > > 
> > > v8 --> v9
> > >  -Changes related to GED being a TYPE_SYS_BUS_DEVICE now.
> > >  -Re-arranged patches 8 and 9.
> > >  -Added GED ABI documentation(patch #10).
> > >  -Added numamem and memhp tests to arm/virt(#11 and #12)
> > >  -Dropped few R-by tags as code has changed a bit.
> > >  -Please see Individual patch history for details.
> > >  
> > > v7 --> v8
> > >  -Addressed comments from Igor.Please see individual patches.
> > >  -Updated bios-tables-test-allowed-diff.h to avoid "make check"
> > >   failure (patch #6) and dropped patch #10
> > >  -Added Igor's R-by to patches 4 & 5.
> > >  -Dropped Erics's R-by from patch #9 for now.
> > > 
> > > v6 --> v7
> > > - Added 4.2 machine support and restricted GED creation for < 4.2
> > >   This is to address the migration test fail reported by Eric.
> > > - Included "tests: Update DSDT ACPI table.." patch(#10) from Eric
> > >   to fix the "make check" bios-tables-test failure.
> > >   
> > > v5 --> v6
> > > 
> > > -Addressed comments from Eric.
> > > -Added R-by from Eric and Igor.
> > > 
> > > v4 --> v5
> > > -Removed gsi/ged-irq routing in virt.
> > > -Added Migration support.
> > > -Dropped support for DT coldplug case based on the discussions
> > >  here[4]
> > > -Added system_powerdown support through GED.
> > > 
> > > v3 --> v4
> > > Addressed comments from Igor and Eric,
> > > -Renamed "virt-acpi" to "acpi-ged".
> > > -Changed ged device parent to TYPE_DEVICE.
> > > -Introduced DT memory node property "hotpluggable" to resolve device
> > >  memory being treated as early boot memory issue(patch #7).
> > > -Combined patches #3 and #9 from v3 into #3.
> > > 
> > > v2 --> v3
> > > 
> > > Addressed comments from Igor and Eric,
> > > -Made virt acpi device platform independent and moved
> > >  to hw/acpi/generic_event_device.c
> > > -Moved ged specific code into hw/acpi/generic_event_device.c
> > > -Introduced an opt-in feature "fdt" to resolve device-memory being
> > >  treated as early boot memory.
> > > -Dropped patch #1 from v2.
> > > 
> > > 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 (2):
> > >   hw/acpi: Do not create memory hotplug method when handler is not
> > >     defined
> > >   hw/acpi: Add ACPI Generic Event Device Support
> > > 
> > > Shameer Kolothum (8):
> > >   hw/acpi: Make ACPI IO address space configurable
> > >   hw/arm/virt: Enable device memory cold/hot plug with ACPI boot
> > >   hw/arm/virt-acpi-build: Add PC-DIMM in SRAT
> > >   hw/arm: Factor out powerdown notifier from GPIO
> > >   hw/arm: Use GED for system_powerdown event
> > >   docs/specs: Add ACPI GED documentation
> > >   tests: Update ACPI tables list for upcoming arm/virt tests
> > >   tests: Add bios tests to arm/virt
> > > 
> > >  docs/specs/acpi_hw_reduced_hotplug.rst |  70 ++++++
> > >  docs/specs/index.rst                   |   1 +
> > >  hw/acpi/Kconfig                        |   4 +
> > >  hw/acpi/Makefile.objs                  |   1 +
> > >  hw/acpi/generic_event_device.c         | 311 +++++++++++++++++++++++++
> > >  hw/acpi/memory_hotplug.c               |  43 ++--
> > >  hw/arm/Kconfig                         |   4 +
> > >  hw/arm/virt-acpi-build.c               |  35 ++-
> > >  hw/arm/virt.c                          | 124 +++++++++-
> > >  hw/i386/acpi-build.c                   |   7 +-
> > >  hw/i386/pc.c                           |   3 +
> > >  include/hw/acpi/acpi_dev_interface.h   |   1 +
> > >  include/hw/acpi/generic_event_device.h | 103 ++++++++
> > >  include/hw/acpi/memory_hotplug.h       |   9 +-
> > >  include/hw/arm/virt.h                  |   5 +
> > >  include/hw/i386/pc.h                   |   3 +
> > >  tests/bios-tables-test-allowed-diff.h  |  16 ++
> > >  tests/bios-tables-test.c               |  49 ++++
> > >  18 files changed, 748 insertions(+), 41 deletions(-)
> > >  create mode 100644 docs/specs/acpi_hw_reduced_hotplug.rst
> > >  create mode 100644 hw/acpi/generic_event_device.c
> > >  create mode 100644 include/hw/acpi/generic_event_device.h
> > > 
> > > -- 
> > > 2.17.1
> > >
Peter Maydell Sept. 27, 2019, 10:37 a.m. UTC | #8
On Wed, 25 Sep 2019 at 17:20, Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Wed, Sep 25, 2019 at 05:37:53PM +0200, Igor Mammedov wrote:
> > On Wed, 25 Sep 2019 11:28:42 -0400
> > "Michael S. Tsirkin" <mst@redhat.com> wrote:
> >
> > > On Wed, Sep 18, 2019 at 02:06:22PM +0100, 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
> > > > 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 is sanity tested on a HiSilicon ARM64 platform and appreciate
> > > > any further testing.
> > > >
> > > > Note:
> > > > Attempted adding dimm_pxm test case to bios-tables-test for arm/virt.
> > > > But noticed the issue decribed here[5]. This is under investigation
> > > > now.
> > > >
> > > > Thanks,
> > > > Shameer
> > >
> > >
> > > Which tree is this going through? Mine or ARM?
> >
> > I'd assume your tree???
> > (You are the wizard who knows how to handle bios-tables-test-allowed-diff.h on merge)
>
> Sure. Peter if you agree, could you send your ack for that please?

Yeah, that's as good a way to do it as any.
Acked-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM