[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v4 0/5] hw/acpi-build: build SRAT memory affinity
From: |
Haozhong Zhang |
Subject: |
Re: [Qemu-ppc] [PATCH v4 0/5] hw/acpi-build: build SRAT memory affinity structures for DIMM devices |
Date: |
Thu, 8 Mar 2018 10:42:20 +0800 |
User-agent: |
NeoMutt/20171027 |
On 03/08/18 10:33 +0800, Haozhong Zhang wrote:
> (Patch 5 is only for reviewers to run test cases in patch 4)
>
> ACPI 6.2A Table 5-129 "SPA Range Structure" requires the proximity
> domain of a NVDIMM SPA range must match with corresponding entry in
> SRAT table.
>
> The address ranges of vNVDIMM in QEMU are allocated from the
> hot-pluggable address space, which is entirely covered by one SRAT
> memory affinity structure. However, users can set the vNVDIMM
> proximity domain in NFIT SPA range structure by the 'node' property of
> '-device nvdimm' to a value different than the one in the above SRAT
> memory affinity structure.
>
> In order to solve such proximity domain mismatch, this patch builds
> one SRAT memory affinity structure for each DIMM device present at
> boot time, including both PC-DIMM and NVDIMM, with the proximity
> domain specified in '-device pc-dimm' or '-device nvdimm'.
>
> The remaining hot-pluggable address space is covered by one or multiple
> SRAT memory affinity structures with the proximity domain of the last
> node as before.
>
> Changes in v4:
> * (Patch 1) Update the commit message and add R-b from Igor Mammedov.
> * (Patch 2) Rebase on misc.json and update the commit message.
> * (Patch 3) Directly use di-addr and di-node.
> * (Patch 4) Drop the previous v3 patch 3 and add '-machine nvdimm=on'
^^^^^^^^^^ should be 'v3 patch 4'
> to parameters of test_acpi_one().
> * (Patch 4) Put PC-DIMM and NVDIMM to different numa nodes.
> * (Patch 4&5) Move binary blobs of ACPI tables to DO-NOT-APPLY patch 5.
>
> Changes in v3:
> * (Patch 1&2) Use qmp_pc_dimm_device_list to get information of DIMM
> devices and move it to separate patches.
> * (Patch 3) Replace while loop by a more readable for loop.
> * (Patch 3) Refactor the flag setting code.
> * (Patch 3) s/'static-plugged'/'present at boot time' in commit message.
>
> Changes in v2:
> * Build SRAT memory affinity structures of PC-DIMM devices as well.
> * Add test cases.
>
>
> Haozhong Zhang (5):
> pc-dimm: make qmp_pc_dimm_device_list() sort devices by address
> qmp: distinguish PC-DIMM and NVDIMM in MemoryDeviceInfoList
> hw/acpi-build: build SRAT memory affinity structures for DIMM devices
> tests/bios-tables-test: add test cases for DIMM proximity
> [DO NOT APPLY] test/acpi-test-data: add ACPI tables for dimmpxm test
>
> hmp.c | 14 +++--
> hw/i386/acpi-build.c | 57 ++++++++++++++++++--
> hw/mem/pc-dimm.c | 99
> ++++++++++++++++++++--------------
> hw/ppc/spapr.c | 3 +-
> include/hw/mem/pc-dimm.h | 2 +-
> numa.c | 23 ++++----
> qapi/misc.json | 18 ++++++-
> qmp.c | 7 +--
> stubs/qmp_pc_dimm.c | 4 +-
> tests/acpi-test-data/pc/APIC.dimmpxm | Bin 0 -> 144 bytes
> tests/acpi-test-data/pc/DSDT.dimmpxm | Bin 0 -> 6803 bytes
> tests/acpi-test-data/pc/NFIT.dimmpxm | Bin 0 -> 224 bytes
> tests/acpi-test-data/pc/SRAT.dimmpxm | Bin 0 -> 472 bytes
> tests/acpi-test-data/pc/SSDT.dimmpxm | Bin 0 -> 685 bytes
> tests/acpi-test-data/q35/APIC.dimmpxm | Bin 0 -> 144 bytes
> tests/acpi-test-data/q35/DSDT.dimmpxm | Bin 0 -> 9487 bytes
> tests/acpi-test-data/q35/NFIT.dimmpxm | Bin 0 -> 224 bytes
> tests/acpi-test-data/q35/SRAT.dimmpxm | Bin 0 -> 472 bytes
> tests/acpi-test-data/q35/SSDT.dimmpxm | Bin 0 -> 685 bytes
> tests/bios-tables-test.c | 38 +++++++++++++
> 20 files changed, 198 insertions(+), 67 deletions(-)
> create mode 100644 tests/acpi-test-data/pc/APIC.dimmpxm
> create mode 100644 tests/acpi-test-data/pc/DSDT.dimmpxm
> create mode 100644 tests/acpi-test-data/pc/NFIT.dimmpxm
> create mode 100644 tests/acpi-test-data/pc/SRAT.dimmpxm
> create mode 100644 tests/acpi-test-data/pc/SSDT.dimmpxm
> create mode 100644 tests/acpi-test-data/q35/APIC.dimmpxm
> create mode 100644 tests/acpi-test-data/q35/DSDT.dimmpxm
> create mode 100644 tests/acpi-test-data/q35/NFIT.dimmpxm
> create mode 100644 tests/acpi-test-data/q35/SRAT.dimmpxm
> create mode 100644 tests/acpi-test-data/q35/SSDT.dimmpxm
>
> --
> 2.14.1
>