[PATCH v2] cpu_s390: Implement getVendorForModel for IBM Z

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. Thanks to Boris Fiuczynski for helping with the domaincapsdata! Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Signed-off-by: Thomas Huth <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(-) diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c index d908a83928..7416ec6dc5 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 (modelName[0] == 'z' || STREQLEN(modelName, "gen", 3)) + 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

On Fri, Nov 25, 2022 at 10:36:22 +0100, 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.
Thanks to Boris Fiuczynski for helping with the domaincapsdata!
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Signed-off-by: Thomas Huth <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(-)
diff --git a/src/cpu/cpu_s390.c b/src/cpu/cpu_s390.c index d908a83928..7416ec6dc5 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 (modelName[0] == 'z' || STREQLEN(modelName, "gen", 3)) + return "IBM";
We have a STRPREFIX helper which might be useful especially for the second part of the condition, but it won't hurt in the first part either: if (STRPREFIX(modelName, "z") || STRPREFIX(modelName, "gen")) return "IBM";
+ + return NULL; +}
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

On 11/25/22 10:36 AM, 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"
s/artifical/artificial/
models from QEMU itself, so it should be OK to get an "unknown" vendor for those two.
Thanks to Boris Fiuczynski for helping with the domaincapsdata!
Thanks for the thanks. :D Instead of the sentence you could remove the RB and add Signed-off-by: Boris Fiuczynski<fiuczy@linux.ibm.com>
Reviewed-by: Boris Fiuczynski<fiuczy@linux.ibm.com> Signed-off-by: Thomas Huth<thuth@redhat.com>
-- Mit freundlichen Grüßen/Kind regards Boris Fiuczynski IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Gregor Pillen Geschäftsführung: David Faller Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294

On 25/11/2022 11.29, Boris Fiuczynski wrote:
On 11/25/22 10:36 AM, 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"
s/artifical/artificial/
models from QEMU itself, so it should be OK to get an "unknown" vendor for those two.
Thanks to Boris Fiuczynski for helping with the domaincapsdata!
Thanks for the thanks. :D Instead of the sentence you could remove the RB and add Signed-off-by: Boris Fiuczynski<fiuczy@linux.ibm.com>
OK, I'll send a v3 with both suggestions (by you and Jiri) addressed. Thomas
participants (3)
-
Boris Fiuczynski
-
Jiri Denemark
-
Thomas Huth