[PATCH v3 0/5] Adding POWER11 CPU Support

Narayana Murty N posted 5 patches 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20250415081309.11559-1-nnmlinux@linux.ibm.com
There is a newer version of this series
src/cpu/cpu_ppc64.c                           |    11 +-
src/cpu_map/index.xml                         |     1 +
src/cpu_map/meson.build                       |     1 +
src/cpu_map/ppc64_POWER11.xml                 |     6 +
tests/domaincapsdata/qemu_10.0.0.ppc64.xml    |   191 +
.../caps_10.0.0_ppc64.replies                 | 39513 ++++++++++++++++
.../caps_10.0.0_ppc64.xml                     |  1090 +
.../ppc64-modern-bulk-domain.xml              |     3 +-
.../ppc64-modern-individual-domain.xml        |     3 +-
.../disk-floppy-pseries.ppc64-latest.xml      |     2 +-
.../memory-hotplug-nvdimm-ppc64.xml           |     3 +-
.../memory-hotplug-ppc64-nonuma.xml           |     3 +
.../panic-pseries.ppc64-latest.args           |     2 +-
.../panic-pseries.ppc64-latest.xml            |     2 +-
...ault-cpu-kvm-pseries-2.7.ppc64-7.0.0.args} |     0
...fault-cpu-kvm-pseries-2.7.ppc64-7.0.0.xml} |     0
...ault-cpu-kvm-pseries-3.1.ppc64-latest.args |     2 +-
...fault-cpu-kvm-pseries-3.1.ppc64-latest.xml |     2 +-
...ault-cpu-kvm-pseries-4.2.ppc64-latest.args |     2 +-
...fault-cpu-kvm-pseries-4.2.ppc64-latest.xml |     2 +-
...ault-cpu-tcg-pseries-2.7.ppc64-7.0.0.args} |     0
...fault-cpu-tcg-pseries-2.7.ppc64-7.0.0.xml} |     0
...efault-models.ppc64-latest.abi-update.args |     4 +-
...default-models.ppc64-latest.abi-update.xml |     2 +-
...4-pseries-default-models.ppc64-latest.args |     4 +-
...64-pseries-default-models.ppc64-latest.xml |     2 +-
.../ppc64-pseries-graphics.ppc64-latest.args  |     4 +-
.../ppc64-pseries-graphics.ppc64-latest.xml   |     2 +-
.../ppc64-pseries-headless.ppc64-latest.args  |     4 +-
.../ppc64-pseries-headless.ppc64-latest.xml   |     2 +-
...eries-minimal.ppc64-latest.abi-update.args |     2 +-
...series-minimal.ppc64-latest.abi-update.xml |     2 +-
.../ppc64-pseries-minimal.ppc64-latest.args   |     2 +-
.../ppc64-pseries-minimal.ppc64-latest.xml    |     2 +-
.../ppc64-tpmproxy-single.ppc64-latest.args   |     2 +-
.../ppc64-tpmproxy-single.ppc64-latest.xml    |     2 +-
.../ppc64-tpmproxy-with-tpm.ppc64-latest.args |     2 +-
.../ppc64-tpmproxy-with-tpm.ppc64-latest.xml  |     2 +-
.../pseries-basic.ppc64-latest.args           |     2 +-
.../pseries-basic.ppc64-latest.xml            |     2 +-
.../pseries-console-virtio.ppc64-latest.args  |     2 +-
.../pseries-console-virtio.ppc64-latest.xml   |     2 +-
...eries-cpu-compat-power11.ppc64-latest.args |    31 +
...series-cpu-compat-power11.ppc64-latest.err |     1 +
...series-cpu-compat-power11.ppc64-latest.xml |    29 +
.../pseries-cpu-compat-power11.xml            |    19 +
.../pseries-cpu-le.ppc64-latest.args          |     2 +-
.../pseries-cpu-le.ppc64-latest.xml           |     2 +-
.../pseries-features.ppc64-latest.args        |     2 +-
.../pseries-features.ppc64-latest.xml         |     2 +-
.../pseries-hostdevs-1.ppc64-latest.args      |     2 +-
.../pseries-hostdevs-1.ppc64-latest.xml       |     2 +-
.../pseries-hostdevs-2.ppc64-latest.args      |     2 +-
.../pseries-hostdevs-2.ppc64-latest.xml       |     2 +-
.../pseries-hostdevs-3.ppc64-latest.args      |     2 +-
.../pseries-hostdevs-3.ppc64-latest.xml       |     2 +-
.../pseries-many-buses-1.ppc64-latest.args    |     2 +-
.../pseries-many-buses-1.ppc64-latest.xml     |     2 +-
.../pseries-many-buses-2.ppc64-latest.args    |     2 +-
.../pseries-many-buses-2.ppc64-latest.xml     |     2 +-
.../pseries-many-devices.ppc64-latest.args    |     2 +-
.../pseries-many-devices.ppc64-latest.xml     |     2 +-
.../pseries-nvram.ppc64-latest.args           |     2 +-
.../pseries-nvram.ppc64-latest.xml            |     2 +-
.../pseries-panic-missing.ppc64-latest.args   |     2 +-
.../pseries-panic-missing.ppc64-latest.xml    |     2 +-
...pseries-panic-no-address.ppc64-latest.args |     2 +-
.../pseries-panic-no-address.ppc64-latest.xml |     2 +-
...ries-phb-default-missing.ppc64-latest.args |     2 +-
...eries-phb-default-missing.ppc64-latest.xml |     2 +-
.../pseries-phb-numa-node.ppc64-latest.args   |     2 +-
.../pseries-phb-numa-node.ppc64-latest.xml    |     2 +-
.../pseries-phb-simple.ppc64-latest.args      |     6 +-
.../pseries-phb-simple.ppc64-latest.xml       |     2 +-
.../pseries-phb-user-alias.ppc64-latest.args  |     6 +-
.../pseries-phb-user-alias.ppc64-latest.xml   |     2 +-
.../pseries-serial-native.ppc64-latest.args   |     2 +-
.../pseries-serial-native.ppc64-latest.xml    |     2 +-
.../pseries-serial-pci.ppc64-latest.args      |     2 +-
.../pseries-serial-pci.ppc64-latest.xml       |     2 +-
.../pseries-serial-usb.ppc64-latest.args      |     2 +-
.../pseries-serial-usb.ppc64-latest.xml       |     2 +-
.../pseries-usb-default.ppc64-latest.args     |     2 +-
.../pseries-usb-default.ppc64-latest.xml      |     2 +-
.../pseries-usb-kbd.ppc64-latest.args         |     2 +-
.../pseries-usb-kbd.ppc64-latest.xml          |     2 +-
.../pseries-usb-multi.ppc64-latest.args       |     2 +-
.../pseries-usb-multi.ppc64-latest.xml        |     2 +-
...series-vio-user-assigned.ppc64-latest.args |     7 +-
...pseries-vio-user-assigned.ppc64-latest.xml |     2 +-
.../pseries-vio.ppc64-latest.args             |     7 +-
.../pseries-vio.ppc64-latest.xml              |     2 +-
...fault-pseries.ppc64-latest.abi-update.args |     2 +-
...efault-pseries.ppc64-latest.abi-update.xml |     2 +-
...ntroller-default-pseries.ppc64-latest.args |     2 +-
...ontroller-default-pseries.ppc64-latest.xml |     2 +-
...fault-unavailable-pseries.ppc64-latest.xml |     2 +-
tests/qemuxmlconftest.c                       |     8 +-
tests/testutilshostcpus.h                     |    11 +
tests/testutilsqemu.c                         |     4 +
tests/testutilsqemu.h                         |     1 +
101 files changed, 41008 insertions(+), 103 deletions(-)
create mode 100644 src/cpu_map/ppc64_POWER11.xml
create mode 100644 tests/domaincapsdata/qemu_10.0.0.ppc64.xml
create mode 100644 tests/qemucapabilitiesdata/caps_10.0.0_ppc64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml
rename tests/qemuxmlconfdata/{ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args => ppc64-default-cpu-kvm-pseries-2.7.ppc64-7.0.0.args} (100%)
rename tests/qemuxmlconfdata/{ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.xml => ppc64-default-cpu-kvm-pseries-2.7.ppc64-7.0.0.xml} (100%)
rename tests/qemuxmlconfdata/{ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args => ppc64-default-cpu-tcg-pseries-2.7.ppc64-7.0.0.args} (100%)
rename tests/qemuxmlconfdata/{ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.xml => ppc64-default-cpu-tcg-pseries-2.7.ppc64-7.0.0.xml} (100%)
create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.ppc64-latest.args
create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.ppc64-latest.err
create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.ppc64-latest.xml
create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.xml
[PATCH v3 0/5] Adding POWER11 CPU Support
Posted by Narayana Murty N 8 months ago
This patch series introduces the necessary changes to
support the power11 CPU and power11 host in libvirt.
Additionally, it updates the QEMU capabilities with
the latest QEMU version v10.0.0-rc2 to include power11
in the capabilities tests.During testing of v2 patches
found a bug in qemu which sets wrong default cpu for
pre-9.0 machines, that was fixed in qemu v10.0.0-rc2.

Patch Summary:
Patch 0001: tests: Pin pseries-2.7 tests to the version 7.0.
Patch 0002: Fix: qemuhotplugtest Set the cpu version at source as POWER9.
Patch 0003: Add capabilities test support for QEMU 10.0.0 on PPC64.
Patch 0004: Add POWER11 CPU model support.
Patch 0005: Add POWER11 host model support and accept case-insensitive.

The corresponding patches for the Linux kernel and QEMU
are already upstream. Relevant links are provided below:

Linux kernel patches:
1. Linux P11 support: commit c2ed087ed35c ("powerpc: Add Power11 architected and raw mode")
2. Linux P11 KVM support: commit 96e266e3bcd6 ("KVM: PPC: Book3S HV: Add Power11 capability support for Nested PAPR guests")
Qemu patches:
3. Qemu P11 support: commit 273db89bcaf4 ("ppc/pseries: Add Power11 cpu type")
4. Qemu P11 DD02.0 support: commit c0d964076c3e ("target/ppc: Add Power11 DD2.0 processor")
5. Qemu pre-9.0 pseries michines changing default cpu with Qemu commit 1490d0bcdfcb ("ppc/spapr: fix default cpu for pre-9.0 machines.").

Signed-off-by: Narayana Murty N <nnmlinux@linux.ibm.com>

----
Changelog:
-V3: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/PGSBL6L7TCWIVOJOP2VNHWLRUL7VW7R6/
  *Rebased to top of the tree as I saw some tests were failing with
   recent commits.
-V2:https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/JQ5UJFWJG35OFX54RQIDHFUSX3RIYIYP/?sort=thread
  *Instead of removing pseries-2.7 related tests, they are now pinned to the latest available capabilities version 7.0.0.
  *patch0003: description explained why the cpu version changed.
  *change the cpu model name to lower case.
  *Fixing the hotplugtest by setting  the cpu version at source as POWER9
  *default CPU change for pseries machines preior to pseries-9.0 tests cases for tcg fixed.
  * Fixing the compat models check for host CPU names in both lowercase and uppercase.
-V1:https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/4A3IND2QP5CE654XE755ICRZKLUNYXAE/
  *Addressed v2 patch readability issues.



Narayana Murty N (5):
  tests: Pin pseries-2.7 tests to the version 7.0
  tests: qemuhotplugtest: Set the cpu version at source for PPC64 tests
  tests: Add capabilities for QEMU 10.0.0 on ppc64
  cpu_map: Add POWER11 cpu model support
  cpu_ppc64: Add POWER11 hostmodel support and accept case insensitive

 src/cpu/cpu_ppc64.c                           |    11 +-
 src/cpu_map/index.xml                         |     1 +
 src/cpu_map/meson.build                       |     1 +
 src/cpu_map/ppc64_POWER11.xml                 |     6 +
 tests/domaincapsdata/qemu_10.0.0.ppc64.xml    |   191 +
 .../caps_10.0.0_ppc64.replies                 | 39513 ++++++++++++++++
 .../caps_10.0.0_ppc64.xml                     |  1090 +
 .../ppc64-modern-bulk-domain.xml              |     3 +-
 .../ppc64-modern-individual-domain.xml        |     3 +-
 .../disk-floppy-pseries.ppc64-latest.xml      |     2 +-
 .../memory-hotplug-nvdimm-ppc64.xml           |     3 +-
 .../memory-hotplug-ppc64-nonuma.xml           |     3 +
 .../panic-pseries.ppc64-latest.args           |     2 +-
 .../panic-pseries.ppc64-latest.xml            |     2 +-
 ...ault-cpu-kvm-pseries-2.7.ppc64-7.0.0.args} |     0
 ...fault-cpu-kvm-pseries-2.7.ppc64-7.0.0.xml} |     0
 ...ault-cpu-kvm-pseries-3.1.ppc64-latest.args |     2 +-
 ...fault-cpu-kvm-pseries-3.1.ppc64-latest.xml |     2 +-
 ...ault-cpu-kvm-pseries-4.2.ppc64-latest.args |     2 +-
 ...fault-cpu-kvm-pseries-4.2.ppc64-latest.xml |     2 +-
 ...ault-cpu-tcg-pseries-2.7.ppc64-7.0.0.args} |     0
 ...fault-cpu-tcg-pseries-2.7.ppc64-7.0.0.xml} |     0
 ...efault-models.ppc64-latest.abi-update.args |     4 +-
 ...default-models.ppc64-latest.abi-update.xml |     2 +-
 ...4-pseries-default-models.ppc64-latest.args |     4 +-
 ...64-pseries-default-models.ppc64-latest.xml |     2 +-
 .../ppc64-pseries-graphics.ppc64-latest.args  |     4 +-
 .../ppc64-pseries-graphics.ppc64-latest.xml   |     2 +-
 .../ppc64-pseries-headless.ppc64-latest.args  |     4 +-
 .../ppc64-pseries-headless.ppc64-latest.xml   |     2 +-
 ...eries-minimal.ppc64-latest.abi-update.args |     2 +-
 ...series-minimal.ppc64-latest.abi-update.xml |     2 +-
 .../ppc64-pseries-minimal.ppc64-latest.args   |     2 +-
 .../ppc64-pseries-minimal.ppc64-latest.xml    |     2 +-
 .../ppc64-tpmproxy-single.ppc64-latest.args   |     2 +-
 .../ppc64-tpmproxy-single.ppc64-latest.xml    |     2 +-
 .../ppc64-tpmproxy-with-tpm.ppc64-latest.args |     2 +-
 .../ppc64-tpmproxy-with-tpm.ppc64-latest.xml  |     2 +-
 .../pseries-basic.ppc64-latest.args           |     2 +-
 .../pseries-basic.ppc64-latest.xml            |     2 +-
 .../pseries-console-virtio.ppc64-latest.args  |     2 +-
 .../pseries-console-virtio.ppc64-latest.xml   |     2 +-
 ...eries-cpu-compat-power11.ppc64-latest.args |    31 +
 ...series-cpu-compat-power11.ppc64-latest.err |     1 +
 ...series-cpu-compat-power11.ppc64-latest.xml |    29 +
 .../pseries-cpu-compat-power11.xml            |    19 +
 .../pseries-cpu-le.ppc64-latest.args          |     2 +-
 .../pseries-cpu-le.ppc64-latest.xml           |     2 +-
 .../pseries-features.ppc64-latest.args        |     2 +-
 .../pseries-features.ppc64-latest.xml         |     2 +-
 .../pseries-hostdevs-1.ppc64-latest.args      |     2 +-
 .../pseries-hostdevs-1.ppc64-latest.xml       |     2 +-
 .../pseries-hostdevs-2.ppc64-latest.args      |     2 +-
 .../pseries-hostdevs-2.ppc64-latest.xml       |     2 +-
 .../pseries-hostdevs-3.ppc64-latest.args      |     2 +-
 .../pseries-hostdevs-3.ppc64-latest.xml       |     2 +-
 .../pseries-many-buses-1.ppc64-latest.args    |     2 +-
 .../pseries-many-buses-1.ppc64-latest.xml     |     2 +-
 .../pseries-many-buses-2.ppc64-latest.args    |     2 +-
 .../pseries-many-buses-2.ppc64-latest.xml     |     2 +-
 .../pseries-many-devices.ppc64-latest.args    |     2 +-
 .../pseries-many-devices.ppc64-latest.xml     |     2 +-
 .../pseries-nvram.ppc64-latest.args           |     2 +-
 .../pseries-nvram.ppc64-latest.xml            |     2 +-
 .../pseries-panic-missing.ppc64-latest.args   |     2 +-
 .../pseries-panic-missing.ppc64-latest.xml    |     2 +-
 ...pseries-panic-no-address.ppc64-latest.args |     2 +-
 .../pseries-panic-no-address.ppc64-latest.xml |     2 +-
 ...ries-phb-default-missing.ppc64-latest.args |     2 +-
 ...eries-phb-default-missing.ppc64-latest.xml |     2 +-
 .../pseries-phb-numa-node.ppc64-latest.args   |     2 +-
 .../pseries-phb-numa-node.ppc64-latest.xml    |     2 +-
 .../pseries-phb-simple.ppc64-latest.args      |     6 +-
 .../pseries-phb-simple.ppc64-latest.xml       |     2 +-
 .../pseries-phb-user-alias.ppc64-latest.args  |     6 +-
 .../pseries-phb-user-alias.ppc64-latest.xml   |     2 +-
 .../pseries-serial-native.ppc64-latest.args   |     2 +-
 .../pseries-serial-native.ppc64-latest.xml    |     2 +-
 .../pseries-serial-pci.ppc64-latest.args      |     2 +-
 .../pseries-serial-pci.ppc64-latest.xml       |     2 +-
 .../pseries-serial-usb.ppc64-latest.args      |     2 +-
 .../pseries-serial-usb.ppc64-latest.xml       |     2 +-
 .../pseries-usb-default.ppc64-latest.args     |     2 +-
 .../pseries-usb-default.ppc64-latest.xml      |     2 +-
 .../pseries-usb-kbd.ppc64-latest.args         |     2 +-
 .../pseries-usb-kbd.ppc64-latest.xml          |     2 +-
 .../pseries-usb-multi.ppc64-latest.args       |     2 +-
 .../pseries-usb-multi.ppc64-latest.xml        |     2 +-
 ...series-vio-user-assigned.ppc64-latest.args |     7 +-
 ...pseries-vio-user-assigned.ppc64-latest.xml |     2 +-
 .../pseries-vio.ppc64-latest.args             |     7 +-
 .../pseries-vio.ppc64-latest.xml              |     2 +-
 ...fault-pseries.ppc64-latest.abi-update.args |     2 +-
 ...efault-pseries.ppc64-latest.abi-update.xml |     2 +-
 ...ntroller-default-pseries.ppc64-latest.args |     2 +-
 ...ontroller-default-pseries.ppc64-latest.xml |     2 +-
 ...fault-unavailable-pseries.ppc64-latest.xml |     2 +-
 tests/qemuxmlconftest.c                       |     8 +-
 tests/testutilshostcpus.h                     |    11 +
 tests/testutilsqemu.c                         |     4 +
 tests/testutilsqemu.h                         |     1 +
 101 files changed, 41008 insertions(+), 103 deletions(-)
 create mode 100644 src/cpu_map/ppc64_POWER11.xml
 create mode 100644 tests/domaincapsdata/qemu_10.0.0.ppc64.xml
 create mode 100644 tests/qemucapabilitiesdata/caps_10.0.0_ppc64.replies
 create mode 100644 tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml
 rename tests/qemuxmlconfdata/{ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.args => ppc64-default-cpu-kvm-pseries-2.7.ppc64-7.0.0.args} (100%)
 rename tests/qemuxmlconfdata/{ppc64-default-cpu-kvm-pseries-2.7.ppc64-latest.xml => ppc64-default-cpu-kvm-pseries-2.7.ppc64-7.0.0.xml} (100%)
 rename tests/qemuxmlconfdata/{ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.args => ppc64-default-cpu-tcg-pseries-2.7.ppc64-7.0.0.args} (100%)
 rename tests/qemuxmlconfdata/{ppc64-default-cpu-tcg-pseries-2.7.ppc64-latest.xml => ppc64-default-cpu-tcg-pseries-2.7.ppc64-7.0.0.xml} (100%)
 create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.ppc64-latest.args
 create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.ppc64-latest.err
 create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.ppc64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/pseries-cpu-compat-power11.xml

--
2.48.1