[PATCH v3] cpu_s390: Implement getVendorForModel for IBM Z

Thomas Huth posted 1 patch 1 year, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20221125105255.247945-1-thuth@redhat.com
src/cpu/cpu_s390.c                        |  11 ++
tests/domaincapsdata/qemu_4.2.0.s390x.xml | 144 +++++++++++-----------
tests/domaincapsdata/qemu_5.2.0.s390x.xml | 144 +++++++++++-----------
tests/domaincapsdata/qemu_6.0.0.s390x.xml | 144 +++++++++++-----------
4 files changed, 227 insertions(+), 216 deletions(-)
[PATCH v3] cpu_s390: Implement getVendorForModel for IBM Z
Posted by Thomas Huth 1 year, 4 months ago
When running "virsh domcapabilities" on a s390x host, all the CPU
models show up with vendor='unknown' - which sounds kind of weird
since the vendor of these mainframe CPUs is well known: IBM.
All CPUs starting with either "z" or "gen" match a real mainframe
CPU by IBM, so let's return the string "IBM" for those now.
The only remaining ones are now the artifical "qemu" and "max"
models from QEMU itself, so it should be OK to get an "unknown"
vendor for those two.

Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Boris Fiuczynski<fiuczy@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 v3: Use STRPREFIX() for the checks (thanks to Jiri for the hint!)

 src/cpu/cpu_s390.c                        |  11 ++
 tests/domaincapsdata/qemu_4.2.0.s390x.xml | 144 +++++++++++-----------
 tests/domaincapsdata/qemu_5.2.0.s390x.xml | 144 +++++++++++-----------
 tests/domaincapsdata/qemu_6.0.0.s390x.xml | 144 +++++++++++-----------
 4 files changed, 227 insertions(+), 216 deletions(-)

diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c
index d908a83928..81a1513ecb 100644
--- a/src/cpu/cpu_s390.c
+++ b/src/cpu/cpu_s390.c
@@ -109,6 +109,16 @@ virCPUs390ValidateFeatures(virCPUDef *cpu)
 }
 
 
+static const char *
+virCPUs390GetVendorForModel(const char *modelName)
+{
+    if (STRPREFIX(modelName, "z") || STRPREFIX(modelName, "gen"))
+        return "IBM";
+
+    return NULL;
+}
+
+
 struct cpuArchDriver cpuDriverS390 = {
     .name = "s390",
     .arch = archs,
@@ -119,4 +129,5 @@ struct cpuArchDriver cpuDriverS390 = {
     .baseline   = NULL,
     .update     = virCPUs390Update,
     .validateFeatures = virCPUs390ValidateFeatures,
+    .getVendorForModel = virCPUs390GetVendorForModel,
 };
diff --git a/tests/domaincapsdata/qemu_4.2.0.s390x.xml b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
index 4f176e2d37..66841881a1 100644
--- a/tests/domaincapsdata/qemu_4.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
@@ -83,79 +83,79 @@
       <feature policy='require' name='cmm'/>
     </mode>
     <mode name='custom' supported='yes'>
-      <model usable='yes' vendor='unknown'>z800-base</model>
-      <model usable='yes' vendor='unknown'>z890.2-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.2</model>
-      <model usable='yes' vendor='unknown'>z13.2</model>
-      <model usable='yes' vendor='unknown'>z9BC-base</model>
-      <model usable='yes' vendor='unknown'>z990.5-base</model>
-      <model usable='yes' vendor='unknown'>z890.2</model>
-      <model usable='yes' vendor='unknown'>z890</model>
-      <model usable='yes' vendor='unknown'>z9BC</model>
-      <model usable='yes' vendor='unknown'>z13</model>
-      <model usable='yes' vendor='unknown'>z196</model>
-      <model usable='yes' vendor='unknown'>z13s</model>
-      <model usable='yes' vendor='unknown'>z990.3</model>
-      <model usable='yes' vendor='unknown'>z13s-base</model>
-      <model usable='yes' vendor='unknown'>z9EC</model>
-      <model usable='yes' vendor='unknown'>gen15a</model>
-      <model usable='yes' vendor='unknown'>z14ZR1-base</model>
-      <model usable='yes' vendor='unknown'>z14.2-base</model>
-      <model usable='yes' vendor='unknown'>z900.3-base</model>
-      <model usable='yes' vendor='unknown'>z13.2-base</model>
-      <model usable='yes' vendor='unknown'>z196.2-base</model>
-      <model usable='yes' vendor='unknown'>zBC12-base</model>
-      <model usable='yes' vendor='unknown'>z9BC.2-base</model>
-      <model usable='yes' vendor='unknown'>z900.2-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.3</model>
-      <model usable='yes' vendor='unknown'>zEC12</model>
-      <model usable='yes' vendor='unknown'>z900</model>
-      <model usable='yes' vendor='unknown'>z114-base</model>
-      <model usable='yes' vendor='unknown'>zEC12-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.2</model>
-      <model usable='yes' vendor='unknown'>z10EC-base</model>
-      <model usable='yes' vendor='unknown'>z900.3</model>
-      <model usable='yes' vendor='unknown'>z14ZR1</model>
-      <model usable='yes' vendor='unknown'>z10BC</model>
-      <model usable='yes' vendor='unknown'>z10BC.2-base</model>
-      <model usable='yes' vendor='unknown'>z990.2</model>
-      <model usable='yes' vendor='unknown'>z9BC.2</model>
-      <model usable='yes' vendor='unknown'>z990</model>
-      <model usable='yes' vendor='unknown'>z14</model>
-      <model usable='yes' vendor='unknown'>gen15b-base</model>
-      <model usable='yes' vendor='unknown'>z990.4</model>
+      <model usable='yes' vendor='IBM'>z800-base</model>
+      <model usable='yes' vendor='IBM'>z890.2-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.2</model>
+      <model usable='yes' vendor='IBM'>z13.2</model>
+      <model usable='yes' vendor='IBM'>z9BC-base</model>
+      <model usable='yes' vendor='IBM'>z990.5-base</model>
+      <model usable='yes' vendor='IBM'>z890.2</model>
+      <model usable='yes' vendor='IBM'>z890</model>
+      <model usable='yes' vendor='IBM'>z9BC</model>
+      <model usable='yes' vendor='IBM'>z13</model>
+      <model usable='yes' vendor='IBM'>z196</model>
+      <model usable='yes' vendor='IBM'>z13s</model>
+      <model usable='yes' vendor='IBM'>z990.3</model>
+      <model usable='yes' vendor='IBM'>z13s-base</model>
+      <model usable='yes' vendor='IBM'>z9EC</model>
+      <model usable='yes' vendor='IBM'>gen15a</model>
+      <model usable='yes' vendor='IBM'>z14ZR1-base</model>
+      <model usable='yes' vendor='IBM'>z14.2-base</model>
+      <model usable='yes' vendor='IBM'>z900.3-base</model>
+      <model usable='yes' vendor='IBM'>z13.2-base</model>
+      <model usable='yes' vendor='IBM'>z196.2-base</model>
+      <model usable='yes' vendor='IBM'>zBC12-base</model>
+      <model usable='yes' vendor='IBM'>z9BC.2-base</model>
+      <model usable='yes' vendor='IBM'>z900.2-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.3</model>
+      <model usable='yes' vendor='IBM'>zEC12</model>
+      <model usable='yes' vendor='IBM'>z900</model>
+      <model usable='yes' vendor='IBM'>z114-base</model>
+      <model usable='yes' vendor='IBM'>zEC12-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.2</model>
+      <model usable='yes' vendor='IBM'>z10EC-base</model>
+      <model usable='yes' vendor='IBM'>z900.3</model>
+      <model usable='yes' vendor='IBM'>z14ZR1</model>
+      <model usable='yes' vendor='IBM'>z10BC</model>
+      <model usable='yes' vendor='IBM'>z10BC.2-base</model>
+      <model usable='yes' vendor='IBM'>z990.2</model>
+      <model usable='yes' vendor='IBM'>z9BC.2</model>
+      <model usable='yes' vendor='IBM'>z990</model>
+      <model usable='yes' vendor='IBM'>z14</model>
+      <model usable='yes' vendor='IBM'>gen15b-base</model>
+      <model usable='yes' vendor='IBM'>z990.4</model>
       <model usable='yes' vendor='unknown'>max</model>
-      <model usable='yes' vendor='unknown'>z10EC.2-base</model>
-      <model usable='yes' vendor='unknown'>gen15a-base</model>
-      <model usable='yes' vendor='unknown'>z800</model>
-      <model usable='yes' vendor='unknown'>zEC12.2</model>
-      <model usable='yes' vendor='unknown'>z10EC</model>
-      <model usable='yes' vendor='unknown'>z990.2-base</model>
-      <model usable='yes' vendor='unknown'>z900-base</model>
-      <model usable='yes' vendor='unknown'>z10BC.2</model>
-      <model usable='yes' vendor='unknown'>z9EC-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.3-base</model>
-      <model usable='yes' vendor='unknown'>z114</model>
-      <model usable='yes' vendor='unknown'>z890.3</model>
-      <model usable='yes' vendor='unknown'>z196-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.2-base</model>
-      <model usable='yes' vendor='unknown'>z196.2</model>
-      <model usable='yes' vendor='unknown'>z14.2</model>
-      <model usable='yes' vendor='unknown'>z990-base</model>
-      <model usable='yes' vendor='unknown'>z900.2</model>
-      <model usable='yes' vendor='unknown'>z890-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.3</model>
-      <model usable='yes' vendor='unknown'>z14-base</model>
-      <model usable='yes' vendor='unknown'>z990.4-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.3-base</model>
-      <model usable='yes' vendor='unknown'>z10BC-base</model>
-      <model usable='yes' vendor='unknown'>z13-base</model>
-      <model usable='yes' vendor='unknown'>z990.3-base</model>
-      <model usable='yes' vendor='unknown'>zEC12.2-base</model>
-      <model usable='yes' vendor='unknown'>zBC12</model>
-      <model usable='yes' vendor='unknown'>z890.3-base</model>
-      <model usable='yes' vendor='unknown'>z990.5</model>
-      <model usable='yes' vendor='unknown'>gen15b</model>
+      <model usable='yes' vendor='IBM'>z10EC.2-base</model>
+      <model usable='yes' vendor='IBM'>gen15a-base</model>
+      <model usable='yes' vendor='IBM'>z800</model>
+      <model usable='yes' vendor='IBM'>zEC12.2</model>
+      <model usable='yes' vendor='IBM'>z10EC</model>
+      <model usable='yes' vendor='IBM'>z990.2-base</model>
+      <model usable='yes' vendor='IBM'>z900-base</model>
+      <model usable='yes' vendor='IBM'>z10BC.2</model>
+      <model usable='yes' vendor='IBM'>z9EC-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.3-base</model>
+      <model usable='yes' vendor='IBM'>z114</model>
+      <model usable='yes' vendor='IBM'>z890.3</model>
+      <model usable='yes' vendor='IBM'>z196-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.2-base</model>
+      <model usable='yes' vendor='IBM'>z196.2</model>
+      <model usable='yes' vendor='IBM'>z14.2</model>
+      <model usable='yes' vendor='IBM'>z990-base</model>
+      <model usable='yes' vendor='IBM'>z900.2</model>
+      <model usable='yes' vendor='IBM'>z890-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.3</model>
+      <model usable='yes' vendor='IBM'>z14-base</model>
+      <model usable='yes' vendor='IBM'>z990.4-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.3-base</model>
+      <model usable='yes' vendor='IBM'>z10BC-base</model>
+      <model usable='yes' vendor='IBM'>z13-base</model>
+      <model usable='yes' vendor='IBM'>z990.3-base</model>
+      <model usable='yes' vendor='IBM'>zEC12.2-base</model>
+      <model usable='yes' vendor='IBM'>zBC12</model>
+      <model usable='yes' vendor='IBM'>z890.3-base</model>
+      <model usable='yes' vendor='IBM'>z990.5</model>
+      <model usable='yes' vendor='IBM'>gen15b</model>
       <model usable='no' vendor='unknown'>qemu</model>
     </mode>
   </cpu>
diff --git a/tests/domaincapsdata/qemu_5.2.0.s390x.xml b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
index 760f514d7b..31ddbfbc75 100644
--- a/tests/domaincapsdata/qemu_5.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
@@ -85,79 +85,79 @@
       <feature policy='require' name='cmm'/>
     </mode>
     <mode name='custom' supported='yes'>
-      <model usable='yes' vendor='unknown'>z800-base</model>
-      <model usable='yes' vendor='unknown'>z890.2-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.2</model>
-      <model usable='yes' vendor='unknown'>z13.2</model>
-      <model usable='yes' vendor='unknown'>z990.5-base</model>
-      <model usable='yes' vendor='unknown'>z9BC-base</model>
-      <model usable='yes' vendor='unknown'>z890.2</model>
-      <model usable='yes' vendor='unknown'>z890</model>
-      <model usable='yes' vendor='unknown'>z9BC</model>
-      <model usable='yes' vendor='unknown'>z13</model>
-      <model usable='yes' vendor='unknown'>z196</model>
-      <model usable='yes' vendor='unknown'>z13s</model>
-      <model usable='yes' vendor='unknown'>z990.3</model>
-      <model usable='yes' vendor='unknown'>z13s-base</model>
-      <model usable='yes' vendor='unknown'>z9EC</model>
-      <model usable='yes' vendor='unknown'>gen15a</model>
-      <model usable='yes' vendor='unknown'>z14ZR1-base</model>
-      <model usable='yes' vendor='unknown'>z14.2-base</model>
-      <model usable='yes' vendor='unknown'>z900.3-base</model>
-      <model usable='yes' vendor='unknown'>z13.2-base</model>
-      <model usable='yes' vendor='unknown'>z196.2-base</model>
-      <model usable='yes' vendor='unknown'>zBC12-base</model>
-      <model usable='yes' vendor='unknown'>z9BC.2-base</model>
-      <model usable='yes' vendor='unknown'>z900.2-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.3</model>
-      <model usable='yes' vendor='unknown'>zEC12</model>
-      <model usable='yes' vendor='unknown'>z900</model>
-      <model usable='yes' vendor='unknown'>z114-base</model>
-      <model usable='yes' vendor='unknown'>zEC12-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.2</model>
-      <model usable='yes' vendor='unknown'>z10EC-base</model>
-      <model usable='yes' vendor='unknown'>z900.3</model>
-      <model usable='yes' vendor='unknown'>z14ZR1</model>
-      <model usable='yes' vendor='unknown'>z10BC</model>
-      <model usable='yes' vendor='unknown'>z10BC.2-base</model>
-      <model usable='yes' vendor='unknown'>z9BC.2</model>
-      <model usable='yes' vendor='unknown'>z990</model>
-      <model usable='yes' vendor='unknown'>z990.2</model>
-      <model usable='yes' vendor='unknown'>z14</model>
-      <model usable='yes' vendor='unknown'>gen15b-base</model>
-      <model usable='yes' vendor='unknown'>z990.4</model>
+      <model usable='yes' vendor='IBM'>z800-base</model>
+      <model usable='yes' vendor='IBM'>z890.2-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.2</model>
+      <model usable='yes' vendor='IBM'>z13.2</model>
+      <model usable='yes' vendor='IBM'>z990.5-base</model>
+      <model usable='yes' vendor='IBM'>z9BC-base</model>
+      <model usable='yes' vendor='IBM'>z890.2</model>
+      <model usable='yes' vendor='IBM'>z890</model>
+      <model usable='yes' vendor='IBM'>z9BC</model>
+      <model usable='yes' vendor='IBM'>z13</model>
+      <model usable='yes' vendor='IBM'>z196</model>
+      <model usable='yes' vendor='IBM'>z13s</model>
+      <model usable='yes' vendor='IBM'>z990.3</model>
+      <model usable='yes' vendor='IBM'>z13s-base</model>
+      <model usable='yes' vendor='IBM'>z9EC</model>
+      <model usable='yes' vendor='IBM'>gen15a</model>
+      <model usable='yes' vendor='IBM'>z14ZR1-base</model>
+      <model usable='yes' vendor='IBM'>z14.2-base</model>
+      <model usable='yes' vendor='IBM'>z900.3-base</model>
+      <model usable='yes' vendor='IBM'>z13.2-base</model>
+      <model usable='yes' vendor='IBM'>z196.2-base</model>
+      <model usable='yes' vendor='IBM'>zBC12-base</model>
+      <model usable='yes' vendor='IBM'>z9BC.2-base</model>
+      <model usable='yes' vendor='IBM'>z900.2-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.3</model>
+      <model usable='yes' vendor='IBM'>zEC12</model>
+      <model usable='yes' vendor='IBM'>z900</model>
+      <model usable='yes' vendor='IBM'>z114-base</model>
+      <model usable='yes' vendor='IBM'>zEC12-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.2</model>
+      <model usable='yes' vendor='IBM'>z10EC-base</model>
+      <model usable='yes' vendor='IBM'>z900.3</model>
+      <model usable='yes' vendor='IBM'>z14ZR1</model>
+      <model usable='yes' vendor='IBM'>z10BC</model>
+      <model usable='yes' vendor='IBM'>z10BC.2-base</model>
+      <model usable='yes' vendor='IBM'>z9BC.2</model>
+      <model usable='yes' vendor='IBM'>z990</model>
+      <model usable='yes' vendor='IBM'>z990.2</model>
+      <model usable='yes' vendor='IBM'>z14</model>
+      <model usable='yes' vendor='IBM'>gen15b-base</model>
+      <model usable='yes' vendor='IBM'>z990.4</model>
       <model usable='yes' vendor='unknown'>max</model>
-      <model usable='yes' vendor='unknown'>z990.2-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.2-base</model>
-      <model usable='yes' vendor='unknown'>gen15a-base</model>
-      <model usable='yes' vendor='unknown'>z800</model>
-      <model usable='yes' vendor='unknown'>z10EC</model>
-      <model usable='yes' vendor='unknown'>zEC12.2</model>
-      <model usable='yes' vendor='unknown'>z900-base</model>
-      <model usable='yes' vendor='unknown'>z10BC.2</model>
-      <model usable='yes' vendor='unknown'>z9EC-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.3-base</model>
-      <model usable='yes' vendor='unknown'>z114</model>
-      <model usable='yes' vendor='unknown'>z890.3</model>
-      <model usable='yes' vendor='unknown'>z196-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.2-base</model>
-      <model usable='yes' vendor='unknown'>z196.2</model>
-      <model usable='yes' vendor='unknown'>z14.2</model>
-      <model usable='yes' vendor='unknown'>z990-base</model>
-      <model usable='yes' vendor='unknown'>z900.2</model>
-      <model usable='yes' vendor='unknown'>z10EC.3</model>
-      <model usable='yes' vendor='unknown'>z890-base</model>
-      <model usable='yes' vendor='unknown'>z14-base</model>
-      <model usable='yes' vendor='unknown'>z990.4-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.3-base</model>
-      <model usable='yes' vendor='unknown'>z10BC-base</model>
-      <model usable='yes' vendor='unknown'>z13-base</model>
-      <model usable='yes' vendor='unknown'>z990.3-base</model>
-      <model usable='yes' vendor='unknown'>zEC12.2-base</model>
-      <model usable='yes' vendor='unknown'>zBC12</model>
-      <model usable='yes' vendor='unknown'>z890.3-base</model>
-      <model usable='yes' vendor='unknown'>z990.5</model>
-      <model usable='yes' vendor='unknown'>gen15b</model>
+      <model usable='yes' vendor='IBM'>z990.2-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.2-base</model>
+      <model usable='yes' vendor='IBM'>gen15a-base</model>
+      <model usable='yes' vendor='IBM'>z800</model>
+      <model usable='yes' vendor='IBM'>z10EC</model>
+      <model usable='yes' vendor='IBM'>zEC12.2</model>
+      <model usable='yes' vendor='IBM'>z900-base</model>
+      <model usable='yes' vendor='IBM'>z10BC.2</model>
+      <model usable='yes' vendor='IBM'>z9EC-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.3-base</model>
+      <model usable='yes' vendor='IBM'>z114</model>
+      <model usable='yes' vendor='IBM'>z890.3</model>
+      <model usable='yes' vendor='IBM'>z196-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.2-base</model>
+      <model usable='yes' vendor='IBM'>z196.2</model>
+      <model usable='yes' vendor='IBM'>z14.2</model>
+      <model usable='yes' vendor='IBM'>z990-base</model>
+      <model usable='yes' vendor='IBM'>z900.2</model>
+      <model usable='yes' vendor='IBM'>z10EC.3</model>
+      <model usable='yes' vendor='IBM'>z890-base</model>
+      <model usable='yes' vendor='IBM'>z14-base</model>
+      <model usable='yes' vendor='IBM'>z990.4-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.3-base</model>
+      <model usable='yes' vendor='IBM'>z10BC-base</model>
+      <model usable='yes' vendor='IBM'>z13-base</model>
+      <model usable='yes' vendor='IBM'>z990.3-base</model>
+      <model usable='yes' vendor='IBM'>zEC12.2-base</model>
+      <model usable='yes' vendor='IBM'>zBC12</model>
+      <model usable='yes' vendor='IBM'>z890.3-base</model>
+      <model usable='yes' vendor='IBM'>z990.5</model>
+      <model usable='yes' vendor='IBM'>gen15b</model>
       <model usable='yes' vendor='unknown'>qemu</model>
     </mode>
   </cpu>
diff --git a/tests/domaincapsdata/qemu_6.0.0.s390x.xml b/tests/domaincapsdata/qemu_6.0.0.s390x.xml
index b1968668db..1cb19e051b 100644
--- a/tests/domaincapsdata/qemu_6.0.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.s390x.xml
@@ -86,79 +86,79 @@
       <feature policy='require' name='cmm'/>
     </mode>
     <mode name='custom' supported='yes'>
-      <model usable='yes' vendor='unknown'>z800-base</model>
-      <model usable='yes' vendor='unknown'>z890.2-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.2</model>
-      <model usable='yes' vendor='unknown'>z13.2</model>
-      <model usable='yes' vendor='unknown'>z990.5-base</model>
-      <model usable='yes' vendor='unknown'>z9BC-base</model>
-      <model usable='yes' vendor='unknown'>z890.2</model>
-      <model usable='yes' vendor='unknown'>z890</model>
-      <model usable='yes' vendor='unknown'>z9BC</model>
-      <model usable='yes' vendor='unknown'>z13</model>
-      <model usable='yes' vendor='unknown'>z196</model>
-      <model usable='yes' vendor='unknown'>z13s</model>
-      <model usable='yes' vendor='unknown'>z990.3</model>
-      <model usable='yes' vendor='unknown'>z13s-base</model>
-      <model usable='yes' vendor='unknown'>z9EC</model>
-      <model usable='yes' vendor='unknown'>gen15a</model>
-      <model usable='yes' vendor='unknown'>z14ZR1-base</model>
-      <model usable='yes' vendor='unknown'>z14.2-base</model>
-      <model usable='yes' vendor='unknown'>z900.3-base</model>
-      <model usable='yes' vendor='unknown'>z13.2-base</model>
-      <model usable='yes' vendor='unknown'>z196.2-base</model>
-      <model usable='yes' vendor='unknown'>zBC12-base</model>
-      <model usable='yes' vendor='unknown'>z9BC.2-base</model>
-      <model usable='yes' vendor='unknown'>z900.2-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.3</model>
-      <model usable='yes' vendor='unknown'>zEC12</model>
-      <model usable='yes' vendor='unknown'>z900</model>
-      <model usable='yes' vendor='unknown'>z114-base</model>
-      <model usable='yes' vendor='unknown'>zEC12-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.2</model>
-      <model usable='yes' vendor='unknown'>z10EC-base</model>
-      <model usable='yes' vendor='unknown'>z900.3</model>
-      <model usable='yes' vendor='unknown'>z14ZR1</model>
-      <model usable='yes' vendor='unknown'>z10BC</model>
-      <model usable='yes' vendor='unknown'>z10BC.2-base</model>
-      <model usable='yes' vendor='unknown'>z9BC.2</model>
-      <model usable='yes' vendor='unknown'>z990</model>
-      <model usable='yes' vendor='unknown'>z990.2</model>
-      <model usable='yes' vendor='unknown'>z14</model>
-      <model usable='yes' vendor='unknown'>gen15b-base</model>
-      <model usable='yes' vendor='unknown'>z990.4</model>
+      <model usable='yes' vendor='IBM'>z800-base</model>
+      <model usable='yes' vendor='IBM'>z890.2-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.2</model>
+      <model usable='yes' vendor='IBM'>z13.2</model>
+      <model usable='yes' vendor='IBM'>z990.5-base</model>
+      <model usable='yes' vendor='IBM'>z9BC-base</model>
+      <model usable='yes' vendor='IBM'>z890.2</model>
+      <model usable='yes' vendor='IBM'>z890</model>
+      <model usable='yes' vendor='IBM'>z9BC</model>
+      <model usable='yes' vendor='IBM'>z13</model>
+      <model usable='yes' vendor='IBM'>z196</model>
+      <model usable='yes' vendor='IBM'>z13s</model>
+      <model usable='yes' vendor='IBM'>z990.3</model>
+      <model usable='yes' vendor='IBM'>z13s-base</model>
+      <model usable='yes' vendor='IBM'>z9EC</model>
+      <model usable='yes' vendor='IBM'>gen15a</model>
+      <model usable='yes' vendor='IBM'>z14ZR1-base</model>
+      <model usable='yes' vendor='IBM'>z14.2-base</model>
+      <model usable='yes' vendor='IBM'>z900.3-base</model>
+      <model usable='yes' vendor='IBM'>z13.2-base</model>
+      <model usable='yes' vendor='IBM'>z196.2-base</model>
+      <model usable='yes' vendor='IBM'>zBC12-base</model>
+      <model usable='yes' vendor='IBM'>z9BC.2-base</model>
+      <model usable='yes' vendor='IBM'>z900.2-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.3</model>
+      <model usable='yes' vendor='IBM'>zEC12</model>
+      <model usable='yes' vendor='IBM'>z900</model>
+      <model usable='yes' vendor='IBM'>z114-base</model>
+      <model usable='yes' vendor='IBM'>zEC12-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.2</model>
+      <model usable='yes' vendor='IBM'>z10EC-base</model>
+      <model usable='yes' vendor='IBM'>z900.3</model>
+      <model usable='yes' vendor='IBM'>z14ZR1</model>
+      <model usable='yes' vendor='IBM'>z10BC</model>
+      <model usable='yes' vendor='IBM'>z10BC.2-base</model>
+      <model usable='yes' vendor='IBM'>z9BC.2</model>
+      <model usable='yes' vendor='IBM'>z990</model>
+      <model usable='yes' vendor='IBM'>z990.2</model>
+      <model usable='yes' vendor='IBM'>z14</model>
+      <model usable='yes' vendor='IBM'>gen15b-base</model>
+      <model usable='yes' vendor='IBM'>z990.4</model>
       <model usable='yes' vendor='unknown'>max</model>
-      <model usable='yes' vendor='unknown'>z10EC.2-base</model>
-      <model usable='yes' vendor='unknown'>gen15a-base</model>
-      <model usable='yes' vendor='unknown'>z800</model>
-      <model usable='yes' vendor='unknown'>z10EC</model>
-      <model usable='yes' vendor='unknown'>zEC12.2</model>
-      <model usable='yes' vendor='unknown'>z990.2-base</model>
-      <model usable='yes' vendor='unknown'>z900-base</model>
-      <model usable='yes' vendor='unknown'>z10BC.2</model>
-      <model usable='yes' vendor='unknown'>z9EC-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.3-base</model>
-      <model usable='yes' vendor='unknown'>z114</model>
-      <model usable='yes' vendor='unknown'>z890.3</model>
-      <model usable='yes' vendor='unknown'>z196-base</model>
-      <model usable='yes' vendor='unknown'>z9EC.2-base</model>
-      <model usable='yes' vendor='unknown'>z196.2</model>
-      <model usable='yes' vendor='unknown'>z14.2</model>
-      <model usable='yes' vendor='unknown'>z990-base</model>
-      <model usable='yes' vendor='unknown'>z900.2</model>
-      <model usable='yes' vendor='unknown'>z890-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.3</model>
-      <model usable='yes' vendor='unknown'>z14-base</model>
-      <model usable='yes' vendor='unknown'>z990.4-base</model>
-      <model usable='yes' vendor='unknown'>z10EC.3-base</model>
-      <model usable='yes' vendor='unknown'>z10BC-base</model>
-      <model usable='yes' vendor='unknown'>z13-base</model>
-      <model usable='yes' vendor='unknown'>z990.3-base</model>
-      <model usable='yes' vendor='unknown'>zEC12.2-base</model>
-      <model usable='yes' vendor='unknown'>zBC12</model>
-      <model usable='yes' vendor='unknown'>z890.3-base</model>
-      <model usable='yes' vendor='unknown'>z990.5</model>
-      <model usable='yes' vendor='unknown'>gen15b</model>
+      <model usable='yes' vendor='IBM'>z10EC.2-base</model>
+      <model usable='yes' vendor='IBM'>gen15a-base</model>
+      <model usable='yes' vendor='IBM'>z800</model>
+      <model usable='yes' vendor='IBM'>z10EC</model>
+      <model usable='yes' vendor='IBM'>zEC12.2</model>
+      <model usable='yes' vendor='IBM'>z990.2-base</model>
+      <model usable='yes' vendor='IBM'>z900-base</model>
+      <model usable='yes' vendor='IBM'>z10BC.2</model>
+      <model usable='yes' vendor='IBM'>z9EC-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.3-base</model>
+      <model usable='yes' vendor='IBM'>z114</model>
+      <model usable='yes' vendor='IBM'>z890.3</model>
+      <model usable='yes' vendor='IBM'>z196-base</model>
+      <model usable='yes' vendor='IBM'>z9EC.2-base</model>
+      <model usable='yes' vendor='IBM'>z196.2</model>
+      <model usable='yes' vendor='IBM'>z14.2</model>
+      <model usable='yes' vendor='IBM'>z990-base</model>
+      <model usable='yes' vendor='IBM'>z900.2</model>
+      <model usable='yes' vendor='IBM'>z890-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.3</model>
+      <model usable='yes' vendor='IBM'>z14-base</model>
+      <model usable='yes' vendor='IBM'>z990.4-base</model>
+      <model usable='yes' vendor='IBM'>z10EC.3-base</model>
+      <model usable='yes' vendor='IBM'>z10BC-base</model>
+      <model usable='yes' vendor='IBM'>z13-base</model>
+      <model usable='yes' vendor='IBM'>z990.3-base</model>
+      <model usable='yes' vendor='IBM'>zEC12.2-base</model>
+      <model usable='yes' vendor='IBM'>zBC12</model>
+      <model usable='yes' vendor='IBM'>z890.3-base</model>
+      <model usable='yes' vendor='IBM'>z990.5</model>
+      <model usable='yes' vendor='IBM'>gen15b</model>
       <model usable='yes' vendor='unknown'>qemu</model>
     </mode>
   </cpu>
-- 
2.31.1
Re: [PATCH v3] cpu_s390: Implement getVendorForModel for IBM Z
Posted by Michal Prívozník 1 year, 2 months ago
On 11/25/22 11:52, Thomas Huth wrote:
> When running "virsh domcapabilities" on a s390x host, all the CPU
> models show up with vendor='unknown' - which sounds kind of weird
> since the vendor of these mainframe CPUs is well known: IBM.
> All CPUs starting with either "z" or "gen" match a real mainframe
> CPU by IBM, so let's return the string "IBM" for those now.
> The only remaining ones are now the artifical "qemu" and "max"
> models from QEMU itself, so it should be OK to get an "unknown"
> vendor for those two.
> 
> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
> Signed-off-by: Boris Fiuczynski<fiuczy@linux.ibm.com>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  v3: Use STRPREFIX() for the checks (thanks to Jiri for the hint!)
> 
>  src/cpu/cpu_s390.c                        |  11 ++
>  tests/domaincapsdata/qemu_4.2.0.s390x.xml | 144 +++++++++++-----------
>  tests/domaincapsdata/qemu_5.2.0.s390x.xml | 144 +++++++++++-----------
>  tests/domaincapsdata/qemu_6.0.0.s390x.xml | 144 +++++++++++-----------
>  4 files changed, 227 insertions(+), 216 deletions(-)
> 

Oops. Sorry for the delay. Pushed now.

Michal
Re: [PATCH v3] cpu_s390: Implement getVendorForModel for IBM Z
Posted by Thomas Huth 1 year, 2 months ago
On 25/11/2022 11.52, Thomas Huth wrote:
> When running "virsh domcapabilities" on a s390x host, all the CPU
> models show up with vendor='unknown' - which sounds kind of weird
> since the vendor of these mainframe CPUs is well known: IBM.
> All CPUs starting with either "z" or "gen" match a real mainframe
> CPU by IBM, so let's return the string "IBM" for those now.
> The only remaining ones are now the artifical "qemu" and "max"
> models from QEMU itself, so it should be OK to get an "unknown"
> vendor for those two.
> 
> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
> Signed-off-by: Boris Fiuczynski<fiuczy@linux.ibm.com>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   v3: Use STRPREFIX() for the checks (thanks to Jiri for the hint!)
> 
>   src/cpu/cpu_s390.c                        |  11 ++
>   tests/domaincapsdata/qemu_4.2.0.s390x.xml | 144 +++++++++++-----------
>   tests/domaincapsdata/qemu_5.2.0.s390x.xml | 144 +++++++++++-----------
>   tests/domaincapsdata/qemu_6.0.0.s390x.xml | 144 +++++++++++-----------
>   4 files changed, 227 insertions(+), 216 deletions(-)

Friendly ping!

  Thomas