From e17aa7408ca84929b42428ba582e76320aeced5e Mon Sep 17 00:00:00 2001 From: Narayana Murty N Date: Tue, 13 May 2025 03:43:25 -0400 Subject: [PATCH] cpu_map: Add POWER11 CPU model support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add support for the POWER11 CPU model in libvirt ppc64 CPU map. This allows libvirt to recognize and handle guests that specify POWER11 as the target CPU model when running on recent Power systems supporting this architecture. The addition includes: - A new src/cpu_map/ppc64_POWER11.xml definition file describing the features and flags for POWER11 CPUs. - Updates to src/cpu_map/index.xml and build system (meson) to include the new model. - Test updates to qemucapabilitiesdata and qemuxmlconfdata to reflect the presence of POWER11 in supported CPU models. - Adjustments to existing test XMLs to fix CPU model expectations and avoid mismatches during validation against QEMU output. With this change, users can specify POWER11 in guest CPU configuration and have libvirt map it correctly to the corresponding QEMU CPU model and capabilities. Tested with: - QEMU 10.0.0 on POWER11 host system - Validated with updated domain capabilities and qemu capabilities tests Signed-off-by: Narayana Murty N Tested-By: Shivaprasad G Bhat Reviewed-By: Shivaprasad G Bhat Reviewed-by: Ján Tomko --- 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 | 1 + tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml | 4 ++-- .../ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args | 2 +- .../ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.xml | 2 +- .../ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args | 2 +- .../ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.xml | 2 +- tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.args | 2 +- tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.xml | 2 +- 11 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 src/cpu_map/ppc64_POWER11.xml diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml index 87db338cee..790c3b2f83 100644 --- a/src/cpu_map/index.xml +++ b/src/cpu_map/index.xml @@ -181,6 +181,7 @@ + diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build index dee8441a13..abf9c21e4f 100644 --- a/src/cpu_map/meson.build +++ b/src/cpu_map/meson.build @@ -17,6 +17,7 @@ cpumap_data = [ 'arm_vendors.xml', 'index.xml', 'ppc64_POWER10.xml', + 'ppc64_POWER11.xml', 'ppc64_POWER6.xml', 'ppc64_POWER7.xml', 'ppc64_POWER8.xml', diff --git a/src/cpu_map/ppc64_POWER11.xml b/src/cpu_map/ppc64_POWER11.xml new file mode 100644 index 0000000000..6e8ae715c6 --- /dev/null +++ b/src/cpu_map/ppc64_POWER11.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/domaincapsdata/qemu_10.0.0.ppc64.xml b/tests/domaincapsdata/qemu_10.0.0.ppc64.xml index 3c864146eb..ccedde63d1 100644 --- a/tests/domaincapsdata/qemu_10.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_10.0.0.ppc64.xml @@ -36,6 +36,7 @@ POWER10 + POWER11 POWER7 POWER8 POWER9 diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml index bd65a038f9..1afe4ff7f3 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_ppc64.xml @@ -175,7 +175,7 @@ - + @@ -632,7 +632,7 @@ - + diff --git a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args index a98dd05b5b..6390322e8c 100644 --- a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args +++ b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ -machine pseries-3.1,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \ -accel kvm \ --cpu power11 \ +-cpu POWER11 \ -m size=4194304k \ -object '{"qom-type":"memory-backend-ram","id":"ppc_spapr.ram","size":4294967296}' \ -overcommit mem-lock=off \ diff --git a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.xml b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.xml index b4d23bbe57..a751a64e11 100644 --- a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.xml +++ b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-3.1.ppc64-latest.xml @@ -9,7 +9,7 @@ - power11 + POWER11 destroy diff --git a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args index 21b51e76f6..130c801fa6 100644 --- a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args +++ b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ -machine pseries-4.2,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \ -accel kvm \ --cpu power11 \ +-cpu POWER11 \ -m size=4194304k \ -object '{"qom-type":"memory-backend-ram","id":"ppc_spapr.ram","size":4294967296}' \ -overcommit mem-lock=off \ diff --git a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.xml b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.xml index ff3ad5f9d4..168006a3dc 100644 --- a/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.xml +++ b/tests/qemuxmlconfdata/ppc64-default-cpu-kvm-pseries-4.2.ppc64-latest.xml @@ -9,7 +9,7 @@ - power11 + POWER11 destroy diff --git a/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.args b/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.args index 351702dcfd..7dbdc20359 100644 --- a/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.args +++ b/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ -machine pseries,usb=off,dump-guest-core=off,memory-backend=ppc_spapr.ram \ -accel kvm \ --cpu power11 \ +-cpu POWER11 \ -m size=524288k \ -object '{"qom-type":"memory-backend-ram","id":"ppc_spapr.ram","size":536870912}' \ -overcommit mem-lock=off \ diff --git a/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.xml b/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.xml index 1e67592876..c6f4f95690 100644 --- a/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.xml +++ b/tests/qemuxmlconfdata/pseries-cpu-le.ppc64-latest.xml @@ -9,7 +9,7 @@ - power11 + POWER11 destroy -- 2.47.3