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@xxxxxxxxxxxxx> > Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx> > --- > 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@xxxxxxxxxx>