From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893757; cv=none; d=zohomail.com; s=zohoarc; b=JMAXUT78DnF58U7rmTGPJegR7ccFFY5LWnDG8l4VM8XNCR8fFFogiB70I0BtfLr6nuFxwfjKtucHfDbOPs+w7zlyH8FJeGM3eURmqdzcSrtM2ygicBIMQHQs+CY4HocbjkLT6hNNwvoL8g8JzL6BNBKy0be864+ar5Yf2aC4hcg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893757; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BivVyzwM1mVzqE4Gq1MLcDdnqknEv54ZIhn3Pzg5WME=; b=Fr7erlGrI51o1IrjlMPpv4+M5DFZuJBHJfOpEWvMVU1jLznaD9qCSNQL/4KjoJq62sshcFJ36LmDbAGLSHq84F0iogjdvgVH0WfX6F/sO4owld+V6uV63jN2NdHluDjh3os/Urpcuae+/HbwGEW+LzavBDaG+Cs+ycfao78Phu4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1664893757125341.3520994736491; Tue, 4 Oct 2022 07:29:17 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-270-HZ51ToPGNkGBzzvfOCkB_w-1; Tue, 04 Oct 2022 10:29:12 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4A6AB1C0CE71; Tue, 4 Oct 2022 14:29:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2CB1B1121314; Tue, 4 Oct 2022 14:29:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 630AA1947BBD; Tue, 4 Oct 2022 14:29:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 336E51946A4C for ; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 256C439D6A; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DAD5B17583 for ; Tue, 4 Oct 2022 14:28:58 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 52FC0188F4A; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893755; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=BivVyzwM1mVzqE4Gq1MLcDdnqknEv54ZIhn3Pzg5WME=; b=KriJLwr2IYizuPtGIDELl88CIim7Uo6QcLFke8s+/2/lHGwAIkBk/DpPZ2OJX1bD4cyjLJ k5N8RVwigfNFgn6Z+ucMyWyZLFl3hGW9ZKi6icGOi7/HgpMCsUiGkv8SQwEbBySHbO269f Rb2YIQALMc+/psO/7GiQMYs5maRI1kM= X-MC-Unique: HZ51ToPGNkGBzzvfOCkB_w-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 01/11] conf: virDomainCapsCPUModelsAdd never fails Date: Tue, 4 Oct 2022 16:28:44 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893758299100011 Content-Type: text/plain; charset="utf-8" Since the function always returns 0, we can just return void and make callers simpler. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_capabilities.c | 24 +++++++++--------------- src/conf/domain_capabilities.h | 11 ++++++----- src/qemu/qemu_capabilities.c | 9 ++++----- tests/cputest.c | 14 ++++---------- 4 files changed, 23 insertions(+), 35 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 653123f293..123c80a560 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -155,37 +155,33 @@ virDomainCapsCPUModelsNew(size_t nmodels) virDomainCapsCPUModels * virDomainCapsCPUModelsCopy(virDomainCapsCPUModels *old) { - g_autoptr(virDomainCapsCPUModels) cpuModels =3D NULL; + virDomainCapsCPUModels *cpuModels =3D NULL; size_t i; =20 if (!(cpuModels =3D virDomainCapsCPUModelsNew(old->nmodels))) return NULL; =20 for (i =3D 0; i < old->nmodels; i++) { - if (virDomainCapsCPUModelsAdd(cpuModels, - old->models[i].name, - old->models[i].usable, - old->models[i].blockers, - old->models[i].deprecated) < 0) - return NULL; + virDomainCapsCPUModelsAdd(cpuModels, + old->models[i].name, + old->models[i].usable, + old->models[i].blockers, + old->models[i].deprecated); } =20 - return g_steal_pointer(&cpuModels); + return cpuModels; } =20 =20 -int +void virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuModels, const char *name, virDomainCapsCPUUsable usable, char **blockers, bool deprecated) { - g_autofree char * nameCopy =3D NULL; virDomainCapsCPUModel *cpu; =20 - nameCopy =3D g_strdup(name); - VIR_RESIZE_N(cpuModels->models, cpuModels->nmodels_max, cpuModels->nmodels, 1); =20 @@ -193,11 +189,9 @@ virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuM= odels, cpuModels->nmodels++; =20 cpu->usable =3D usable; - cpu->name =3D g_steal_pointer(&nameCopy); + cpu->name =3D g_strdup(name); cpu->blockers =3D g_strdupv(blockers); cpu->deprecated =3D deprecated; - - return 0; } =20 =20 diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index a526969cda..7333276231 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -244,11 +244,12 @@ virDomainCaps *virDomainCapsNew(const char *path, =20 virDomainCapsCPUModels *virDomainCapsCPUModelsNew(size_t nmodels); virDomainCapsCPUModels *virDomainCapsCPUModelsCopy(virDomainCapsCPUModels = *old); -int virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuModels, - const char *name, - virDomainCapsCPUUsable usable, - char **blockers, - bool deprecated); +void +virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuModels, + const char *name, + virDomainCapsCPUUsable usable, + char **blockers, + bool deprecated); virDomainCapsCPUModel * virDomainCapsCPUModelsGet(virDomainCapsCPUModels *cpuModels, const char *name); diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 50bde370e8..2a0be77631 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2179,7 +2179,7 @@ virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefs *defs, const char **modelAllowed, const char **modelForbidden) { - g_autoptr(virDomainCapsCPUModels) cpuModels =3D NULL; + virDomainCapsCPUModels *cpuModels =3D NULL; size_t i; =20 if (!(cpuModels =3D virDomainCapsCPUModelsNew(defs->ncpus))) @@ -2194,12 +2194,11 @@ virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefs *defs, if (modelForbidden && g_strv_contains(modelForbidden, cpu->name)) continue; =20 - if (virDomainCapsCPUModelsAdd(cpuModels, cpu->name, cpu->usable, - cpu->blockers, cpu->deprecated) < 0) - return NULL; + virDomainCapsCPUModelsAdd(cpuModels, cpu->name, cpu->usable, + cpu->blockers, cpu->deprecated); } =20 - return g_steal_pointer(&cpuModels); + return cpuModels; } =20 =20 diff --git a/tests/cputest.c b/tests/cputest.c index b7ec79dfc6..9d24b9d0f5 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -823,9 +823,8 @@ cpuTestUpdateLive(const void *arg) usable =3D hvModel->usable; } =20 - if (virDomainCapsCPUModelsAdd(models, expected->model, - usable, blockers, false) < 0) - return -1; + virDomainCapsCPUModelsAdd(models, expected->model, + usable, blockers, false); =20 cpu->fallback =3D VIR_CPU_FALLBACK_ALLOW; ignore_value(virCPUTranslate(data->arch, cpu, models)); @@ -902,16 +901,11 @@ cpuTestInitModels(const char **list) return NULL; =20 for (model =3D list; *model; model++) { - if (virDomainCapsCPUModelsAdd(cpus, *model, - VIR_DOMCAPS_CPU_USABLE_UNKNOWN, NULL= , false) < 0) - goto error; + virDomainCapsCPUModelsAdd(cpus, *model, + VIR_DOMCAPS_CPU_USABLE_UNKNOWN, NULL, fa= lse); } =20 return cpus; - - error: - virObjectUnref(cpus); - return NULL; } =20 =20 --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893757; cv=none; d=zohomail.com; s=zohoarc; b=mVcDdYpSeP7jsEO8yX3lqCT0GeaYSnybT5q1h/hI1EjuCQGkIT3xdFaPDooPdOhd4JnLch0SFqFe7bxBeSGWuFEyNGS40t5iNmKlsOyqVR6oVOAnT5o79eIdJSugOmPEZ2hm5REC5I+QT/XriCc3QIKW0QDSOOy1bp1Rzy9mIGA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893757; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=H+8SjwsETMHv7XZ7fLo+01MJgUGXq5wogzMCrIXlIpg=; b=I7NYsPYQ3211R6IPomNcLDD4lziAA3ony9lEXgUl9gf8NJpyATGT/ufsDDDs+nAnbN5Wfx2DiI4RPVRIrkqGj65OuQJozITzteV+hd1ZVCc9XLs/2PyyIMRldSt7iXF6xhVCjBqUaisLEvXemgD0GvBL4gn3JVl4gkSI+PwgDN8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1664893757352442.5961949311894; Tue, 4 Oct 2022 07:29:17 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-505-Yhht2BylM2m5rJBH8LB9ug-1; Tue, 04 Oct 2022 10:29:11 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2A38618E53D1; Tue, 4 Oct 2022 14:29:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 179871415113; Tue, 4 Oct 2022 14:29:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id F21CE1947B92; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 22E9419465B5 for ; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 045B240FF681; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D623140C206B for ; Tue, 4 Oct 2022 14:28:58 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 54F8D188F50; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893755; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=H+8SjwsETMHv7XZ7fLo+01MJgUGXq5wogzMCrIXlIpg=; b=Ka+6Dz2/vE9Z0+9VcylXmK0I9faRwsylpwGeZZ49Ph5AJ5HdDCWisvzp/xy0BWyP+8qdYc h45g2Pd91tHEfPn+brpDKoyq+L8HsgcWVCB/Dks0ZF0ZfgtXSwt0FHnSIPJY8DZdTNpe+i FIkJh9icOSFGik2gVMmzD4rSDgoLK90= X-MC-Unique: Yhht2BylM2m5rJBH8LB9ug-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 02/11] cpu_ppc64: Avoid repeated loading of CPU map Date: Tue, 4 Oct 2022 16:28:45 +0200 Message-Id: <789feb5beadb49abb8c6231ad65211a247b160c7.1664892459.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893758312100012 Content-Type: text/plain; charset="utf-8" The ppc64 CPU code still has to load and parse the CPU map everytime it needs to look at it, which can make some operations pretty slow. Other archs already switched to loading the CPU map once and keeping the parsed structure in memory. Let's switch ppc64 as well. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/cpu/cpu_ppc64.c | 47 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c index cd2df4ba4a..9997e14a89 100644 --- a/src/cpu/cpu_ppc64.c +++ b/src/cpu/cpu_ppc64.c @@ -53,6 +53,12 @@ struct _ppc64_map { struct _ppc64_model **models; }; =20 +static virCPUppc64Map *cpuMap; + +int virCPUppc64DriverOnceInit(void); +VIR_ONCE_GLOBAL_INIT(virCPUppc64Driver); + + /* Convert a legacy CPU definition by transforming * model names to generation names: * POWER7_v2.1 =3D> POWER7 @@ -365,8 +371,8 @@ ppc64ModelParse(xmlXPathContextPtr ctxt, } =20 =20 -static struct _ppc64_map * -ppc64LoadMap(void) +static virCPUppc64Map * +virCPUppc64LoadMap(void) { g_autoptr(virCPUppc64Map) map =3D NULL; =20 @@ -378,12 +384,33 @@ ppc64LoadMap(void) return g_steal_pointer(&map); } =20 + +int +virCPUppc64DriverOnceInit(void) +{ + if (!(cpuMap =3D virCPUppc64LoadMap())) + return -1; + + return 0; +} + + +static virCPUppc64Map * +virCPUppc64GetMap(void) +{ + if (virCPUppc64DriverInitialize() < 0) + return NULL; + + return cpuMap; +} + + static virCPUCompareResult ppc64Compute(virCPUDef *host, const virCPUDef *other, char **message) { - g_autoptr(virCPUppc64Map) map =3D NULL; + virCPUppc64Map *map =3D NULL; g_autoptr(virCPUppc64Model) host_model =3D NULL; g_autoptr(virCPUppc64Model) guest_model =3D NULL; g_autoptr(virCPUDef) cpu =3D NULL; @@ -428,7 +455,7 @@ ppc64Compute(virCPUDef *host, return VIR_CPU_COMPARE_INCOMPATIBLE; } =20 - if (!(map =3D ppc64LoadMap())) + if (!(map =3D virCPUppc64GetMap())) return VIR_CPU_COMPARE_ERROR; =20 /* Host CPU information */ @@ -526,10 +553,10 @@ ppc64DriverDecode(virCPUDef *cpu, const virCPUData *data, virDomainCapsCPUModels *models) { - g_autoptr(virCPUppc64Map) map =3D NULL; + virCPUppc64Map *map =3D NULL; const virCPUppc64Model *model; =20 - if (!data || !(map =3D ppc64LoadMap())) + if (!data || !(map =3D virCPUppc64GetMap())) return -1; =20 if (!(model =3D ppc64ModelFindPVR(map, data->data.ppc64.pvr[0].value))= ) { @@ -656,13 +683,13 @@ virCPUppc64Baseline(virCPUDef **cpus, const char **features G_GNUC_UNUSED, bool migratable G_GNUC_UNUSED) { - g_autoptr(virCPUppc64Map) map =3D NULL; + virCPUppc64Map *map =3D NULL; const virCPUppc64Model *model; const virCPUppc64Vendor *vendor =3D NULL; g_autoptr(virCPUDef) cpu =3D NULL; size_t i; =20 - if (!(map =3D ppc64LoadMap())) + if (!(map =3D virCPUppc64GetMap())) return NULL; =20 if (!(model =3D ppc64ModelFind(map, cpus[0]->model))) { @@ -737,10 +764,10 @@ virCPUppc64Baseline(virCPUDef **cpus, static int virCPUppc64DriverGetModels(char ***models) { - g_autoptr(virCPUppc64Map) map =3D NULL; + virCPUppc64Map *map =3D NULL; size_t i; =20 - if (!(map =3D ppc64LoadMap())) + if (!(map =3D virCPUppc64GetMap())) return -1; =20 if (models) { --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893755; cv=none; d=zohomail.com; s=zohoarc; b=LVyuSiENvwpjytOvgcaTwLOqtfNvzi9RsleYOBYE3AJxi4Zuls9IG/DA51zLvl/uxOzqgJtSIX2asHAXCiVmemrRujZ1bTYtLZZsF2U2XY5p+Ug2GlnSCAnIStwHR79vYcrNRe/pybUHia7Nrre46ZqqAhs5i4BUg7VLHtpY2uQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893755; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=REAqLyY3AmlhnzTzlg2rFd1Lb3CuWo3QqOdM1TrCEXk=; b=L+obrlYW7puSW20LAuTqbL/foh0A8Dt0skVlH5xYcjieiSfx3Sb4jz8jysYXKzfEaCEJ9dkyOggQIwoNjh0WbFigF5Std/XqWYzqC8xZxgJS0+xrhu8BPWqcPZvAAxyeb+p0vHgFGn/UXtJYfmmW5X5zGvVnaqRayT14axsks1I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1664893755765214.41745733941355; Tue, 4 Oct 2022 07:29:15 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-589-vMvpyjRlOAmZraEA2CwygA-1; Tue, 04 Oct 2022 10:29:08 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D3D853C11EAC; Tue, 4 Oct 2022 14:29:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 67AF91415102; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2F4E71946A4C; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 3CE3519465B5 for ; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 20FEE1410F36; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D64D7140EBF3 for ; Tue, 4 Oct 2022 14:28:58 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 571B4188F55; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893754; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=REAqLyY3AmlhnzTzlg2rFd1Lb3CuWo3QqOdM1TrCEXk=; b=HM5SE828L0O1IBu6F+lkpo4rZHawYvu/lnNLT1tLF75eSEsLi2irEmShgV6WsXXjFjG/Yt vtGSWWaChLliRe67MsdoHSvrRPV6j8DPlOMB/XrWekUpNZKZg2T0a/arl0mqxhVSKeU+HG BeOLPuswV3gKNJAxqQqBQwrJxEkV/YQ= X-MC-Unique: vMvpyjRlOAmZraEA2CwygA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 03/11] qemu: Do not pass qemuCaps to virQEMUCapsCPUFeature{To, From}QEMU Date: Tue, 4 Oct 2022 16:28:46 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893756337100005 Content-Type: text/plain; charset="utf-8" The only part of qemuCaps both functions are interested in is the CPU architecture. Changing them to expect just virArch makes the functions more reusable. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_capabilities.c | 18 +++++++++--------- src/qemu/qemu_capabilities.h | 4 ++-- src/qemu/qemu_command.c | 2 +- src/qemu/qemu_monitor.c | 7 +++---- src/qemu/qemu_monitor.h | 5 ++--- src/qemu/qemu_monitor_json.c | 11 ++++------- src/qemu/qemu_monitor_json.h | 1 - src/qemu/qemu_process.c | 12 +----------- 8 files changed, 22 insertions(+), 38 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2a0be77631..fc4a5f66f7 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3108,7 +3108,7 @@ virQEMUCapsGetCPUFeatures(virQEMUCaps *qemuCaps, if (migratable && prop->migratable =3D=3D VIR_TRISTATE_BOOL_NO) continue; =20 - list[n++] =3D g_strdup(virQEMUCapsCPUFeatureFromQEMU(qemuCaps, pro= p->name)); + list[n++] =3D g_strdup(virQEMUCapsCPUFeatureFromQEMU(qemuCaps->arc= h, prop->name)); } =20 *features =3D g_steal_pointer(&list); @@ -3434,14 +3434,14 @@ virQEMUCapsCPUFeatureTranslationTable virQEMUCapsCP= UFeaturesX86[] =3D { =20 =20 static const char * -virQEMUCapsCPUFeatureTranslate(virQEMUCaps *qemuCaps, +virQEMUCapsCPUFeatureTranslate(virArch arch, const char *feature, bool reversed) { virQEMUCapsCPUFeatureTranslationTable *table =3D NULL; virQEMUCapsCPUFeatureTranslationTable *entry; =20 - if (ARCH_IS_X86(qemuCaps->arch)) + if (ARCH_IS_X86(arch)) table =3D virQEMUCapsCPUFeaturesX86; =20 if (!table || @@ -3460,18 +3460,18 @@ virQEMUCapsCPUFeatureTranslate(virQEMUCaps *qemuCap= s, =20 =20 const char * -virQEMUCapsCPUFeatureToQEMU(virQEMUCaps *qemuCaps, +virQEMUCapsCPUFeatureToQEMU(virArch arch, const char *feature) { - return virQEMUCapsCPUFeatureTranslate(qemuCaps, feature, false); + return virQEMUCapsCPUFeatureTranslate(arch, feature, false); } =20 =20 const char * -virQEMUCapsCPUFeatureFromQEMU(virQEMUCaps *qemuCaps, +virQEMUCapsCPUFeatureFromQEMU(virArch arch, const char *feature) { - return virQEMUCapsCPUFeatureTranslate(qemuCaps, feature, true); + return virQEMUCapsCPUFeatureTranslate(arch, feature, true); } =20 =20 @@ -3510,7 +3510,7 @@ virQEMUCapsInitCPUModelS390(virQEMUCaps *qemuCaps, for (i =3D 0; i < modelInfo->nprops; i++) { virCPUFeatureDef *feature =3D cpu->features + cpu->nfeatures; qemuMonitorCPUProperty *prop =3D modelInfo->props + i; - const char *name =3D virQEMUCapsCPUFeatureFromQEMU(qemuCaps, prop-= >name); + const char *name =3D virQEMUCapsCPUFeatureFromQEMU(qemuCaps->arch,= prop->name); =20 if (prop->type !=3D QEMU_MONITOR_CPU_PROPERTY_BOOLEAN) continue; @@ -3545,7 +3545,7 @@ virQEMUCapsGetCPUModelX86Data(virQEMUCaps *qemuCaps, =20 for (i =3D 0; i < model->nprops; i++) { qemuMonitorCPUProperty *prop =3D model->props + i; - const char *name =3D virQEMUCapsCPUFeatureFromQEMU(qemuCaps, prop-= >name); + const char *name =3D virQEMUCapsCPUFeatureFromQEMU(qemuCaps->arch,= prop->name); =20 switch (prop->type) { case QEMU_MONITOR_CPU_PROPERTY_BOOLEAN: diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index ca919ff368..904ee54f60 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -838,11 +838,11 @@ bool virQEMUCapsCPUFilterFeatures(const char *name, void *opaque); =20 const char * -virQEMUCapsCPUFeatureToQEMU(virQEMUCaps *qemuCaps, +virQEMUCapsCPUFeatureToQEMU(virArch arch, const char *feature); =20 const char * -virQEMUCapsCPUFeatureFromQEMU(virQEMUCaps *qemuCaps, +virQEMUCapsCPUFeatureFromQEMU(virArch arch, const char *feature); =20 virSEVCapability * diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 7ec44736d3..150824f2e1 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6111,7 +6111,7 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, =20 for (i =3D 0; i < cpu->nfeatures; i++) { const char *featname =3D - virQEMUCapsCPUFeatureToQEMU(qemuCaps, cpu->features[i].name); + virQEMUCapsCPUFeatureToQEMU(def->os.arch, cpu->features[i].nam= e); switch ((virCPUFeaturePolicy) cpu->features[i].policy) { case VIR_CPU_FEATURE_FORCE: case VIR_CPU_FEATURE_REQUIRE: diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index c2808c75a3..5eba154d96 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3633,12 +3633,11 @@ qemuMonitorGetGuestCPU(qemuMonitor *mon, virArch arch, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback translate, - void *opaque, virCPUData **enabled, virCPUData **disabled) { - VIR_DEBUG("arch=3D%s cpuQOMPath=3D%s translate=3D%p opaque=3D%p enable= d=3D%p disabled=3D%p", - virArchToString(arch), cpuQOMPath, translate, opaque, enable= d, disabled); + VIR_DEBUG("arch=3D%s cpuQOMPath=3D%s translate=3D%p enabled=3D%p disab= led=3D%p", + virArchToString(arch), cpuQOMPath, translate, enabled, disab= led); =20 QEMU_CHECK_MONITOR(mon); =20 @@ -3646,7 +3645,7 @@ qemuMonitorGetGuestCPU(qemuMonitor *mon, if (disabled) *disabled =3D NULL; =20 - return qemuMonitorJSONGetGuestCPU(mon, arch, cpuQOMPath, translate, op= aque, + return qemuMonitorJSONGetGuestCPU(mon, arch, cpuQOMPath, translate, enabled, disabled); } =20 diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 4d770486be..4fead0a998 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1219,14 +1219,13 @@ int qemuMonitorGetGuestCPUx86(qemuMonitor *mon, virCPUData **data, virCPUData **disabled); =20 -typedef const char *(*qemuMonitorCPUFeatureTranslationCallback)(const char= *name, - void *opaq= ue); +typedef const char *(*qemuMonitorCPUFeatureTranslationCallback)(virArch ar= ch, + const char= *name); =20 int qemuMonitorGetGuestCPU(qemuMonitor *mon, virArch arch, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback transl= ate, - void *opaque, virCPUData **enabled, virCPUData **disabled); =20 diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index b63400354b..f54b4609a9 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6781,7 +6781,6 @@ static int qemuMonitorJSONGetCPUData(qemuMonitor *mon, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback transla= te, - void *opaque, virCPUData *data) { qemuMonitorJSONObjectProperty prop =3D { .type =3D QEMU_MONITOR_OBJECT= _PROPERTY_BOOLEAN }; @@ -6801,7 +6800,7 @@ qemuMonitorJSONGetCPUData(qemuMonitor *mon, continue; =20 if (translate) - name =3D translate(name, opaque); + name =3D translate(data->arch, name); =20 if (virCPUDataAddFeature(data, name) < 0) return -1; @@ -6815,7 +6814,6 @@ static int qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback= translate, - void *opaque, virCPUData *data) { g_auto(GStrv) props =3D NULL; @@ -6829,7 +6827,7 @@ qemuMonitorJSONGetCPUDataDisabled(qemuMonitor *mon, const char *name =3D *p; =20 if (translate) - name =3D translate(name, opaque); + name =3D translate(data->arch, name); =20 if (virCPUDataAddFeature(data, name) < 0) return -1; @@ -6859,7 +6857,6 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, virArch arch, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback transl= ate, - void *opaque, virCPUData **enabled, virCPUData **disabled) { @@ -6870,11 +6867,11 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, !(cpuDisabled =3D virCPUDataNew(arch))) return -1; =20 - if (qemuMonitorJSONGetCPUData(mon, cpuQOMPath, translate, opaque, cpuE= nabled) < 0) + if (qemuMonitorJSONGetCPUData(mon, cpuQOMPath, translate, cpuEnabled) = < 0) return -1; =20 if (disabled && - qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, opaq= ue, cpuDisabled) < 0) + qemuMonitorJSONGetCPUDataDisabled(mon, cpuQOMPath, translate, cpuD= isabled) < 0) return -1; =20 *enabled =3D g_steal_pointer(&cpuEnabled); diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index a53e6423df..f14d0b5bae 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -605,7 +605,6 @@ qemuMonitorJSONGetGuestCPU(qemuMonitor *mon, virArch arch, const char *cpuQOMPath, qemuMonitorCPUFeatureTranslationCallback transl= ate, - void *opaque, virCPUData **enabled, virCPUData **disabled); =20 diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 998f4aa63c..de627d883c 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4295,16 +4295,6 @@ qemuProcessVerifyCPUFeatures(virDomainDef *def, } =20 =20 -static const char * -qemuProcessTranslateCPUFeatures(const char *name, - void *opaque) -{ - virQEMUCaps *qemuCaps =3D opaque; - - return virQEMUCapsCPUFeatureFromQEMU(qemuCaps, name); -} - - /* returns the QOM path to the first vcpu */ static const char * qemuProcessGetVCPUQOMPath(virDomainObj *vm) @@ -4349,7 +4339,7 @@ qemuProcessFetchGuestCPU(virDomainObj *vm, rc =3D qemuMonitorGetGuestCPU(priv->mon, vm->def->os.arch, cpuQOMPath, - qemuProcessTranslateCPUFeatures, priv-= >qemuCaps, + virQEMUCapsCPUFeatureFromQEMU, &dataEnabled, &dataDisabled); } else { rc =3D qemuMonitorGetGuestCPUx86(priv->mon, cpuQOMPath, &dataEnabl= ed, &dataDisabled); --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893754; cv=none; d=zohomail.com; s=zohoarc; b=Qx/WHWyEh+gadHBqZMT/JwDD8BxoMHEO65d6rV3XcnWxrPTDeL19QMJdkpQL4GmG6U5TqjRj4fTgKDp4b/3AdiAMaD9w2E8efnkx7R8FyPbK9L4+8Xgi+BG2meApUaiTej4bQ49fD9FQm6GfEd4RXWjvMU3z+n/bqXNLrCHjpPI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893754; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=l3Q1t5f54B2IjJKgLBbOXECtCrucaP52NVK3tZfIuBE=; b=ZthnvQqtRcpMNS9+UgEFUCPjKa5T2SRBsay/53nsvs3V+y3CXGWgefPA3p+3g0VqkEO2t08sShro1C+Hf97dq81djFqDv6jsNfvoUnj7JD2lrnIzl2lioyHaCN7bDo9ClkqNqXyM7sMO6/WRuPXDs7p+ACD1LJGvsqUv7Xn8Ajo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1664893754785283.2130242099131; Tue, 4 Oct 2022 07:29:14 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-106-jV2y1ZsrPcWjY-LTeD6MCg-1; Tue, 04 Oct 2022 10:29:09 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1EB74101E148; Tue, 4 Oct 2022 14:29:02 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id C5C5E2166B26; Tue, 4 Oct 2022 14:29:01 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id C1E0E1947B86; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 589891946A4C for ; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3BC9D40FF681; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D630240FF680 for ; Tue, 4 Oct 2022 14:28:58 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 59A1F188F66; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893753; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=l3Q1t5f54B2IjJKgLBbOXECtCrucaP52NVK3tZfIuBE=; b=KbpjpadZD6O88tfbJtb7blWbLtAXz6jtH80fJNShXU2d3jKJ6Q0tglbh5FuxKVC5xeb8yh 1pyasx34SEqUBU4fsgPNhq+boaDW/9TgdJXvy3XRswL/RNVnzSrnRFEwfNq1Ji8bg7pdUk bHpnUkz+ZhusoKbliI+XtACXj6vC3OA= X-MC-Unique: jV2y1ZsrPcWjY-LTeD6MCg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 04/11] domain_capabilities: Add vendor attribute for CPU models Date: Tue, 4 Oct 2022 16:28:47 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893756349100007 Content-Type: text/plain; charset="utf-8" Even though several CPU models from various vendors are reported as usable on a given host, user may still want to use only those that match the host vendor. Currently the only place where users can check the vendor of each CPU model is our CPU map, which is considered internal and users should not really be using it directly. So to allow for such filtering we now advertising the vendor of each CPU model in domain capabilities. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- docs/formatdomaincaps.rst | 12 +- src/conf/domain_capabilities.c | 13 +- src/conf/domain_capabilities.h | 4 +- src/conf/schemas/domaincaps.rng | 3 + src/qemu/qemu_capabilities.c | 2 +- tests/cputest.c | 5 +- .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 104 ++++++------ .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 104 ++++++------ .../qemu_4.2.0-virt.aarch64.xml | 72 ++++----- tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 72 ++++----- tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 6 +- tests/domaincapsdata/qemu_4.2.0.s390x.xml | 148 +++++++++--------- tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 104 ++++++------ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 108 ++++++------- .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 108 ++++++------- .../qemu_5.0.0-virt.aarch64.xml | 74 ++++----- tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 74 ++++----- tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 8 +- tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 108 ++++++------- .../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 108 ++++++------- .../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 108 ++++++------- tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 108 ++++++------- .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 108 ++++++------- .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 108 ++++++------- .../qemu_5.2.0-virt.aarch64.xml | 74 ++++----- tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 74 ++++----- tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 8 +- tests/domaincapsdata/qemu_5.2.0.s390x.xml | 148 +++++++++--------- tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 108 ++++++------- .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 110 ++++++------- .../qemu_6.0.0-virt.aarch64.xml | 76 ++++----- tests/domaincapsdata/qemu_6.0.0.aarch64.xml | 76 ++++----- tests/domaincapsdata/qemu_6.0.0.s390x.xml | 148 +++++++++--------- tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 110 ++++++------- tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 110 ++++++------- .../qemu_6.2.0-virt.aarch64.xml | 78 ++++----- tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 78 ++++----- tests/domaincapsdata/qemu_6.2.0.ppc64.xml | 8 +- tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 110 ++++++------- .../qemu_7.0.0-virt.aarch64.xml | 78 ++++----- tests/domaincapsdata/qemu_7.0.0.aarch64.xml | 78 ++++----- tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 8 +- tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 110 ++++++------- .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 106 ++++++------- .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 106 ++++++------- tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 106 ++++++------- 53 files changed, 2183 insertions(+), 2164 deletions(-) diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst index 70f46b972a..6ce780fb69 100644 --- a/docs/formatdomaincaps.rst +++ b/docs/formatdomaincaps.rst @@ -191,9 +191,10 @@ CPUs `__. - Broadwell - Broadwell-noTSX - Haswell + Broadwell= + Broadwel= l-noTSX + Haswell<= /model> + EPYC-Milan<= /model> ... @@ -226,7 +227,10 @@ more details about it: CPU of such model is expected to have. A special value ``unknown`` indi= cates libvirt does not have enough information to provide the usability data.= The ``deprecated`` attribute reflects the hypervisor's policy on usage of t= his - model :since:`(since 7.1.0)` . + model :since:`(since 7.1.0)`. The ``vendor`` attribute :since:`(since 8= .9.0)` + contains the vendor of the CPU model for users who want to use CPU mode= ls + with specific vendors only. CPU models with undefined vendor will be li= sted + with ``vendor=3D'unkwnown'``. =20 I/O Threads ~~~~~~~~~~~ diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 123c80a560..b5d8288982 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -105,6 +105,7 @@ virDomainCapsCPUModelsDispose(void *obj) for (i =3D 0; i < cpuModels->nmodels; i++) { g_free(cpuModels->models[i].name); g_strfreev(cpuModels->models[i].blockers); + g_free(cpuModels->models[i].vendor); } =20 g_free(cpuModels->models); @@ -166,7 +167,8 @@ virDomainCapsCPUModelsCopy(virDomainCapsCPUModels *old) old->models[i].name, old->models[i].usable, old->models[i].blockers, - old->models[i].deprecated); + old->models[i].deprecated, + old->models[i].vendor); } =20 return cpuModels; @@ -178,7 +180,8 @@ virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuMo= dels, const char *name, virDomainCapsCPUUsable usable, char **blockers, - bool deprecated) + bool deprecated, + const char *vendor) { virDomainCapsCPUModel *cpu; =20 @@ -192,6 +195,7 @@ virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuMo= dels, cpu->name =3D g_strdup(name); cpu->blockers =3D g_strdupv(blockers); cpu->deprecated =3D deprecated; + cpu->vendor =3D g_strdup(vendor); } =20 =20 @@ -377,6 +381,11 @@ virDomainCapsCPUCustomFormat(virBuffer *buf, if (model->deprecated) virBufferAddLit(buf, " deprecated=3D'yes'"); =20 + if (model->vendor) + virBufferAsprintf(buf, " vendor=3D'%s'", model->vendor); + else + virBufferAddLit(buf, " vendor=3D'unknown'"); + virBufferAsprintf(buf, ">%s\n", model->name); } =20 diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 7333276231..f5fa1fb8e3 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -159,6 +159,7 @@ struct _virDomainCapsCPUModel { virDomainCapsCPUUsable usable; char **blockers; /* NULL-terminated list of usability blockers */ bool deprecated; + char *vendor; }; =20 typedef struct _virDomainCapsCPUModels virDomainCapsCPUModels; @@ -249,7 +250,8 @@ virDomainCapsCPUModelsAdd(virDomainCapsCPUModels *cpuMo= dels, const char *name, virDomainCapsCPUUsable usable, char **blockers, - bool deprecated); + bool deprecated, + const char *vendor); virDomainCapsCPUModel * virDomainCapsCPUModelsGet(virDomainCapsCPUModels *cpuModels, const char *name); diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.= rng index 9cbc2467ab..c4cb9afeba 100644 --- a/src/conf/schemas/domaincaps.rng +++ b/src/conf/schemas/domaincaps.rng @@ -159,6 +159,9 @@ + + + diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index fc4a5f66f7..1c771dbfb9 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2195,7 +2195,7 @@ virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefs *defs, continue; =20 virDomainCapsCPUModelsAdd(cpuModels, cpu->name, cpu->usable, - cpu->blockers, cpu->deprecated); + cpu->blockers, cpu->deprecated, NULL); } =20 return cpuModels; diff --git a/tests/cputest.c b/tests/cputest.c index 9d24b9d0f5..52e0022ac3 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -824,7 +824,7 @@ cpuTestUpdateLive(const void *arg) } =20 virDomainCapsCPUModelsAdd(models, expected->model, - usable, blockers, false); + usable, blockers, false, expected->vendo= r); =20 cpu->fallback =3D VIR_CPU_FALLBACK_ALLOW; ignore_value(virCPUTranslate(data->arch, cpu, models)); @@ -902,7 +902,8 @@ cpuTestInitModels(const char **list) =20 for (model =3D list; *model; model++) { virDomainCapsCPUModelsAdd(cpus, *model, - VIR_DOMCAPS_CPU_USABLE_UNKNOWN, NULL, fa= lse); + VIR_DOMCAPS_CPU_USABLE_UNKNOWN, + NULL, false, NULL); } =20 return cpus; diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-q35.x86_64.xml index 0ec4c570ac..fa86554892 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -61,58 +61,58 @@ - qemu64 - qemu32 - phenom - pentium3 - pentium2 - pentium - n270 - kvm64 - kvm32 - coreduo - core2duo - athlon - Westmere-IBRS - Westmere - Snowridge - Skylake-Server-noTSX-IBRS - Skylake-Server-IBRS - Skylake-Server - Skylake-Client-noTSX-IBRS - Skylake-Client-IBRS - Skylake-Client - SandyBridge-IBRS - SandyBridge - Penryn - Opteron_G5 - Opteron_G4 - Opteron_G3 - Opteron_G2 - Opteron_G1 - Nehalem-IBRS - Nehalem - IvyBridge-IBRS - IvyBridge - Icelake-Server-noTSX - Icelake-Server - Icelake-Client-noTSX - Icelake-Client - Haswell-noTSX-IBRS - Haswell-noTSX - Haswell-IBRS - Haswell - EPYC-IBPB - EPYC - Dhyana - Conroe - Cascadelake-Server-noTSX - Cascadelake-Server - Broadwell-noTSX-IBRS - Broadwell-noTSX - Broadwell-IBRS - Broadwell - 486 + qemu64 + qemu32 + phenom + pentium3 + pentium2 + pentium + n270 + kvm64 + kvm32 + coreduo + core2duo + athlon + Westmere-IBRS + Westmere + Snowridge + Skylake-Server-noTSX-IBRS + Skylake-Server-IBRS + Skylake-Server + Skylake-Client-noTSX-IBRS + Skylake-Client-IBRS + Skylake-Client + SandyBridge-IBRS + SandyBridge + Penryn + Opteron_G5 + Opteron_G4 + Opteron_G3 + Opteron_G2 + Opteron_G1 + Nehalem-IBRS + Nehalem + IvyBridge-IBRS + IvyBridge + Icelake-Server-noTSX + Icelake-Server + Icelake-Client-noTSX + Icelake-Client + Haswell-noTSX-IBRS + Haswell-noTSX + Haswell-IBRS + Haswell + EPYC-IBPB + EPYC + Dhyana + Conroe + Cascadelake-Server-noTSX + Cascadelake-Server + Broadwell-noTSX-IBRS + Broadwell-noTSX + Broadwell-IBRS + Broadwell + 486 ... --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893812; cv=none; d=zohomail.com; s=zohoarc; b=mqUEtwILumG7CYi36eMaC/lfM4Gnl4kVSxx0p9d4eqPfZG5Dd7oi+06P+j7n+rHkyidjITTuuLlj7oEtS+HeJFlMnJynxTzpZ0f4h/HxFGr78dyPamwd8wq0Znt9ZDIhqKP0Igaru6Kh5cWblW1DcV7eDI1CxV+HXTNLbqfkJBg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893812; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=gOiGVxlBAdyyR5forgCp69DQfp9XwxIgu72WyYJ+sws=; b=gSWYpzZcMhHClWVm8s0S9VJMihIvPlBvbL+pR7gPK4CE9BVOebSV7zqWVkcZtkBmMlp53qL1B0k2x3t1DoodW7h+atsAlQdjXnfDx0BVj7HQgfKkl+N2cfjHTwzB/8BejFYweDG7IUANJlr6PePGNhMEhvrdN0x4GnUn3oYCv1s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1664893812410699.0265158031658; Tue, 4 Oct 2022 07:30:12 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-665-8-KOLAFjMZKw4wjaqO2clg-1; Tue, 04 Oct 2022 10:29:16 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id AC53C857D12; Tue, 4 Oct 2022 14:29:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 99D351121314; Tue, 4 Oct 2022 14:29:06 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 8F7C41946A4F; Tue, 4 Oct 2022 14:29:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4F14E1947042 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 394082166B2A; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EF6182166B26 for ; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 5C1D0188F6F; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893811; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=gOiGVxlBAdyyR5forgCp69DQfp9XwxIgu72WyYJ+sws=; b=BcJzDP7PrelNuEXE/AvAXuTo3KM3FZtFyFTGrsvbbn7sVMbVuhGdSu3RjkOwWsCQJTqwJk yGQquFL9tk0GHy7aln5Z70AZ1qZGQjQAb1Oy4huJF13V+MJchGbOIukoKvxjxj2REOsovO gaMzaKO2gRxiVMi60UjRTYyOiXb6nX0= X-MC-Unique: 8-KOLAFjMZKw4wjaqO2clg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 05/11] Introduce virCPUGetVendorForModel and use it in QEMU driver Date: Tue, 4 Oct 2022 16:28:48 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893812769100001 Content-Type: text/plain; charset="utf-8" So far QEMU driver does not get CPU model vendor from QEMU directly and it has to ask the CPU driver for the info stored in CPU map. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/cpu/cpu.c | 25 +++++++++++++++++++++++++ src/cpu/cpu.h | 8 ++++++++ src/libvirt_private.syms | 1 + src/qemu/qemu_capabilities.c | 18 +++++++++++++----- 4 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index d97ef5e873..7f3caf7a27 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -923,6 +923,31 @@ virCPUGetModels(virArch arch, char ***models) } =20 =20 +/** virCPUGetVendorForModel: + * + * @arch: CPU architecture + * @model: CPU model to be checked + * + * Returns @model's vendor or NULL if the vendor is unknown. + */ +const char * +virCPUGetVendorForModel(virArch arch, + const char *model) +{ + struct cpuArchDriver *driver; + + VIR_DEBUG("arch=3D%s", virArchToString(arch)); + + if (!(driver =3D cpuGetSubDriver(arch))) + return NULL; + + if (!driver->getVendorForModel) + return NULL; + + return driver->getVendorForModel(model); +} + + /** * virCPUTranslate: * diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h index 41a62ce486..a4cdb37f03 100644 --- a/src/cpu/cpu.h +++ b/src/cpu/cpu.h @@ -105,6 +105,9 @@ typedef virCPUData * typedef int (*virCPUArchGetModels)(char ***models); =20 +typedef const char * +(*virCPUArchGetVendorForModel)(const char *model); + typedef int (*virCPUArchTranslate)(virCPUDef *cpu, virDomainCapsCPUModels *models); @@ -150,6 +153,7 @@ struct cpuArchDriver { virCPUArchDataFormat dataFormat; virCPUArchDataParse dataParse; virCPUArchGetModels getModels; + virCPUArchGetVendorForModel getVendorForModel; virCPUArchTranslate translate; virCPUArchConvertLegacy convertLegacy; virCPUArchExpandFeatures expandFeatures; @@ -262,6 +266,10 @@ virCPUModelIsAllowed(const char *model, int virCPUGetModels(virArch arch, char ***models); =20 +const char * +virCPUGetVendorForModel(virArch arch, + const char *model); + int virCPUTranslate(virArch arch, virCPUDef *cpu, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 5be40dbefe..8c3a688d41 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1513,6 +1513,7 @@ virCPUExpandFeatures; virCPUGetHost; virCPUGetHostIsSupported; virCPUGetModels; +virCPUGetVendorForModel; virCPUProbeHost; virCPUTranslate; virCPUUpdate; diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 1c771dbfb9..8e8a84e614 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2175,9 +2175,11 @@ virQEMUCapsAddCPUDefinitions(virQEMUCaps *qemuCaps, =20 =20 static virDomainCapsCPUModels * -virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefs *defs, +virQEMUCapsCPUDefsToModels(virArch arch, + qemuMonitorCPUDefs *defs, const char **modelAllowed, - const char **modelForbidden) + const char **modelForbidden, + bool vendors) { virDomainCapsCPUModels *cpuModels =3D NULL; size_t i; @@ -2187,6 +2189,7 @@ virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefs *defs, =20 for (i =3D 0; i < defs->ncpus; i++) { qemuMonitorCPUDefInfo *cpu =3D defs->cpus + i; + char *vendor =3D NULL; =20 if (modelAllowed && !g_strv_contains(modelAllowed, cpu->name)) continue; @@ -2194,8 +2197,11 @@ virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefs *defs, if (modelForbidden && g_strv_contains(modelForbidden, cpu->name)) continue; =20 + if (vendors) + vendor =3D g_strdup(virCPUGetVendorForModel(arch, cpu->name)); + virDomainCapsCPUModelsAdd(cpuModels, cpu->name, cpu->usable, - cpu->blockers, cpu->deprecated, NULL); + cpu->blockers, cpu->deprecated, vendor); } =20 return cpuModels; @@ -2213,7 +2219,8 @@ virQEMUCapsGetCPUModels(virQEMUCaps *qemuCaps, if (!(defs =3D virQEMUCapsGetAccel(qemuCaps, type)->cpuModels)) return NULL; =20 - return virQEMUCapsCPUDefsToModels(defs, modelAllowed, modelForbidden); + return virQEMUCapsCPUDefsToModels(qemuCaps->arch, defs, + modelAllowed, modelForbidden, true); } =20 =20 @@ -2946,7 +2953,8 @@ virQEMUCapsFetchCPUModels(qemuMonitor *mon, if (virQEMUCapsFetchCPUDefinitions(mon, arch, &defs) < 0) return -1; =20 - if (defs && !(*cpuModels =3D virQEMUCapsCPUDefsToModels(defs, NULL, NU= LL))) + if (defs && + !(*cpuModels =3D virQEMUCapsCPUDefsToModels(arch, defs, NULL, NULL= , false))) return -1; =20 return 0; --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893759; cv=none; d=zohomail.com; s=zohoarc; b=JQZs6Ryt0Nay+W7+yEGvwUu3hyVqSGeHrqLIMZ7ZgnvkJVuRU0d+WkQMQZvcMXyyGcyRCxuZlKY3EcLY5ab0sAr0F7QENTNxYMNSyzccxu/BMk+8cRPdy12MRDcDQMyma/YsvLr3wxPmwzM4wA0TWeJPb7+QOIPQtoAq3Aa2CuM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893759; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PMxm9hZuMRgROsKZU5UAYWw4BU+wIx3y9nfAPd6rkqU=; b=BL26iROCJAT5PPzqNI1paaTJmBVsEReH17cwVs2HSQRlgpEfPW3trZjMtfn4txed4/TAZ42soqfgW0BBQuqoK2r6jlEdnW5AKGfL9nVviSuLhONH32xwxkvpYKRFkvDUPM0qIS4e4lZIb5puvBoIg2Plp6rzZwtZpF3vr4Vv4Zw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1664893759618204.37303200086183; Tue, 4 Oct 2022 07:29:19 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-258-qg49G6jzPNK0-m_ul_2R_g-1; Tue, 04 Oct 2022 10:29:14 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CA5D4811738; Tue, 4 Oct 2022 14:29:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id B78331121315; Tue, 4 Oct 2022 14:29:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 36C171947B8D; Tue, 4 Oct 2022 14:29:05 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 5DD1B1947054 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3A3722166B26; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EF64E2166B29 for ; Tue, 4 Oct 2022 14:28:59 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 5ECF5188F86; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893758; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=PMxm9hZuMRgROsKZU5UAYWw4BU+wIx3y9nfAPd6rkqU=; b=g9q+rFMaOp2zhtqjxGl3QTSDVaAjHwgSjiTgeiMPfnB3bX9i2fW+hBsBGJo0E+MicD3pYT 8++qMCaoEIzH26ZgOpv8asBP1HawJnCn6wOyoTTnhD4tK+2fMlI51fvbjgLZIYYa10Fqb5 tYjAipWaRVZRV+ckwTKCbCP0iUusUHM= X-MC-Unique: qg49G6jzPNK0-m_ul_2R_g-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 06/11] cpu_x86: Implement virCPUGetVendorForModel Date: Tue, 4 Oct 2022 16:28:49 +0200 Message-Id: <0c3be05fa3b56da1ff3560a1c4e297cba4e5a7cb.1664892459.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893760339100015 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/cpu/cpu_x86.c | 19 ++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 88 ++++++++--------- .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 88 ++++++++--------- tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 88 ++++++++--------- .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 92 +++++++++--------- .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 92 +++++++++--------- tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 92 +++++++++--------- .../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 92 +++++++++--------- .../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 92 +++++++++--------- tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 92 +++++++++--------- .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 92 +++++++++--------- .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 92 +++++++++--------- tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 92 +++++++++--------- .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 94 +++++++++---------- tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 94 +++++++++---------- tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 94 +++++++++---------- tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 94 +++++++++---------- tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 94 +++++++++---------- .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 90 +++++++++--------- .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 90 +++++++++--------- tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 90 +++++++++--------- 28 files changed, 1264 insertions(+), 1245 deletions(-) diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 9fcd6b8add..4d2379803c 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -3137,6 +3137,24 @@ virCPUx86GetModels(char ***models) } =20 =20 +static const char * +virCPUx86GetVendorForModel(const char *modelName) +{ + virCPUx86Map *map; + virCPUx86Model *model; + + if (!(map =3D virCPUx86GetMap())) + return NULL; + + model =3D x86ModelFind(map, modelName); + + if (!model || !model->vendor) + return NULL; + + return model->vendor->name; +} + + static int virCPUx86Translate(virCPUDef *cpu, virDomainCapsCPUModels *models) @@ -3539,6 +3557,7 @@ struct cpuArchDriver cpuDriverX86 =3D { .dataFormat =3D virCPUx86DataFormat, .dataParse =3D virCPUx86DataParse, .getModels =3D virCPUx86GetModels, + .getVendorForModel =3D virCPUx86GetVendorForModel, .translate =3D virCPUx86Translate, .expandFeatures =3D virCPUx86ExpandFeatures, .copyMigratable =3D virCPUx86CopyMigratable, diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-q35.x86_64.xml index fa86554892..dab12e5888 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -63,55 +63,55 @@ qemu64 qemu32 - phenom + phenom pentium3 pentium2 pentium - n270 + n270 kvm64 kvm32 - coreduo - core2duo - athlon - Westmere-IBRS - Westmere - Snowridge - Skylake-Server-noTSX-IBRS - Skylake-Server-IBRS - Skylake-Server - Skylake-Client-noTSX-IBRS - Skylake-Client-IBRS - Skylake-Client - SandyBridge-IBRS - SandyBridge - Penryn - Opteron_G5 - Opteron_G4 - Opteron_G3 - Opteron_G2 - Opteron_G1 - Nehalem-IBRS - Nehalem - IvyBridge-IBRS - IvyBridge - Icelake-Server-noTSX - Icelake-Server - Icelake-Client-noTSX - Icelake-Client - Haswell-noTSX-IBRS - Haswell-noTSX - Haswell-IBRS - Haswell - EPYC-IBPB - EPYC - Dhyana - Conroe - Cascadelake-Server-noTSX - Cascadelake-Server - Broadwell-noTSX-IBRS - Broadwell-noTSX - Broadwell-IBRS - Broadwell + coreduo + core2duo + athlon + Westmere-IBRS + Westmere + Snowridge + Skylake-Server-noTSX-IBRS + Skylake-Server-IBRS + Skylake-Server + Skylake-Client-noTSX-IBRS + Skylake-Client-IBRS + Skylake-Client + SandyBridge-IBRS + SandyBridge + Penryn + Opteron_G5 + Opteron_G4 + Opteron_G3 + Opteron_G2 + Opteron_G1 + Nehalem-IBRS + Nehalem + IvyBridge-IBRS + IvyBridge + Icelake-Server-noTSX + Icelake-Server + Icelake-Client-noTSX + Icelake-Client + Haswell-noTSX-IBRS + Haswell-noTSX + Haswell-IBRS + Haswell + EPYC-IBPB + EPYC + Dhyana + Conroe + Cascadelake-Server-noTSX + Cascadelake-Server + Broadwell-noTSX-IBRS + Broadwell-noTSX + Broadwell-IBRS + Broadwell 486 ... --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893812; cv=none; d=zohomail.com; s=zohoarc; b=nMIPkrBllOIaQG/eL1db1OuHwpI72zYpyOBY8A9ndnghFkXEZVQrO4wQOnKfrV2QYYkHUqHobhbQnw3rQIMoaJtP4nMgXz//5vQIUwCA7LidnikDaZrZW6VoacLM1uV1IPa4YQeuHYRskTT0Ksn4xBru5ULR/KeqbH/VhqegaaE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893812; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wkD75DRW8UPIorxb89aMtRgoPEIcBDppIkyzXnXrvNw=; b=j2EO/k1LVNNmxp4bqEnC3nKIvUHBl3+hJEV8qkukulLUJcUC+n4V+rLeE1x0wl5cPUq1/C8XoyG/zYDtuy28JMqdJYteTHNy7uUgGD03EwRx8tKDaFaZKaSL9VrplRQAaBekymKlILbPq8c/NfZ6SHFNzVtzu0FGsVnKW/Xea7U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1664893812527510.01359938740313; Tue, 4 Oct 2022 07:30:12 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-515-5N8PLcAHMAGqtSoIooYpCA-1; Tue, 04 Oct 2022 10:29:14 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DCE8B3C138C2; Tue, 4 Oct 2022 14:29:04 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id BF0474A9257; Tue, 4 Oct 2022 14:29:04 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 94C56194706B; Tue, 4 Oct 2022 14:29:03 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6D58B194705A for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 574CE1121315; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 188141121314 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 612EB188FA2; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893810; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=wkD75DRW8UPIorxb89aMtRgoPEIcBDppIkyzXnXrvNw=; b=F1Sa2WdRASB30Ea+30WRycbjJEsmfeZz0vWbbjVIF5xg7a2I3f76zsbltHBLsu+GTloFjg gSTxSQQTz95QRhDKL0sSmDOvEsflcS3ruv8bhNiq6teiU7K2IKT9qqA+x6scfFuPKBXWaw mdtEzxaNUKj2QBKoHxJQsnF/uwPxibE= X-MC-Unique: 5N8PLcAHMAGqtSoIooYpCA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 07/11] cpu_ppc64: Implement virCPUGetVendorForModel Date: Tue, 4 Oct 2022 16:28:50 +0200 Message-Id: <2737914e094457bfdefc142a7eb3d0f3ddb82b39.1664892459.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893812775100002 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/cpu/cpu_ppc64.c | 20 ++++++++++++++++++++ tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 6 +++--- tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 8 ++++---- tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 8 ++++---- tests/domaincapsdata/qemu_6.2.0.ppc64.xml | 8 ++++---- tests/domaincapsdata/qemu_7.0.0.ppc64.xml | 8 ++++---- 6 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c index 9997e14a89..7da67ec94a 100644 --- a/src/cpu/cpu_ppc64.c +++ b/src/cpu/cpu_ppc64.c @@ -780,6 +780,25 @@ virCPUppc64DriverGetModels(char ***models) return map->nmodels; } =20 + +static const char * +virCPUppc64GetVendorForModel(const char *modelName) +{ + virCPUppc64Map *map =3D NULL; + virCPUppc64Model *model; + + if (!(map =3D virCPUppc64GetMap())) + return NULL; + + model =3D ppc64ModelFind(map, modelName); + + if (!model || !model->vendor) + return NULL; + + return model->vendor->name; +} + + struct cpuArchDriver cpuDriverPPC64 =3D { .name =3D "ppc64", .arch =3D archs, @@ -793,6 +812,7 @@ struct cpuArchDriver cpuDriverPPC64 =3D { .baseline =3D virCPUppc64Baseline, .update =3D virCPUppc64Update, .getModels =3D virCPUppc64DriverGetModels, + .getVendorForModel =3D virCPUppc64GetVendorForModel, .convertLegacy =3D virCPUppc64ConvertLegacy, .dataIsIdentical =3D virCPUppc64DataIsIdentical, }; diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_4.2.0.ppc64.xml index 6d09c5ae4e..7093c35355 100644 --- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml @@ -40,9 +40,9 @@ POWER8 - POWER9 - POWER8 - POWER7 + POWER9 + POWER8 + POWER7 diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.0.0.ppc64.xml index 032a4f4e19..b944723885 100644 --- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml @@ -40,10 +40,10 @@ POWER8 - POWER10 - POWER9 - POWER8 - POWER7 + POWER10 + POWER9 + POWER8 + POWER7 diff --git a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.2.0.ppc64.xml index 570d88235b..71f47c8748 100644 --- a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml @@ -40,10 +40,10 @@ POWER8 - POWER10 - POWER9 - POWER8 - POWER7 + POWER10 + POWER9 + POWER8 + POWER7 diff --git a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_6.2.0.ppc64.xml index c2fe03d227..bf2c679c51 100644 --- a/tests/domaincapsdata/qemu_6.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_6.2.0.ppc64.xml @@ -40,10 +40,10 @@ POWER8 - POWER10 - POWER9 - POWER8 - POWER7 + POWER10 + POWER9 + POWER8 + POWER7 diff --git a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_7.0.0.ppc64.xml index 06e713373e..8f6f9f57e1 100644 --- a/tests/domaincapsdata/qemu_7.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_7.0.0.ppc64.xml @@ -40,10 +40,10 @@ POWER8 - POWER10 - POWER9 - POWER8 - POWER7 + POWER10 + POWER9 + POWER8 + POWER7 --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893768; cv=none; d=zohomail.com; s=zohoarc; b=n5sFIavbjIVpLzr6lnESzdYpODck0YvV14lmCZ+5MtxxP1MpDUhSUeZN8dHSEQMV+UU1sJZe/98J6R412h++rqQr1Eg+GrNhVtWuko2mzTie9GxA8iF0NDU/Ou8svhTnUGvT69Zw+6e2SJzbCHl3nWipNEztzzfytp0rHwLofOI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893768; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=swfbJcH9aVxHKg7EsVH9tplJ23cOzwB9CrNt6P+rkyg=; b=UgPL8RDz2EBpy4uWMpRVFP85CsPKJCYDVxH9+izwmOKVerE/qsA9WkXZpve1p4Z5Lka1b/UVuRAxApZSqY4JEY1QYwA0c79UG8SInfQ+tFFUhuP6NioV+jC3YiiFsXOKLtqgsusqCF8zssSkuWE8zsXPCPkljB1nggTYJGpWaug= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1664893768941835.371069696772; Tue, 4 Oct 2022 07:29:28 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-55-nE2AwrnLNpSld6vo4AjPlA-1; Tue, 04 Oct 2022 10:29:14 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4818729DD9AA; Tue, 4 Oct 2022 14:29:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 33B191121314; Tue, 4 Oct 2022 14:29:05 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id DE5DD1946A63; Tue, 4 Oct 2022 14:29:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 5722E194704F for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 3819A40FF681; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1575040FF680 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 639BC188FBA; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893767; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=swfbJcH9aVxHKg7EsVH9tplJ23cOzwB9CrNt6P+rkyg=; b=eY234urhcAwLMUjUJGpaaVsnBYWsvrQsZvTenFFUxpq2K1GOuoOGngOVB6+pqD4eAi1RRl oNklTbqGulGhsqPfu8BCiy/5EaCNnRizwrPqxdkVHDvaoRW/2G9AB0pAZrw1RvTf+FT8O0 DTjgp5q/zWc0v4t8A6fHT+3YyFLi7XQ= X-MC-Unique: nE2AwrnLNpSld6vo4AjPlA-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 08/11] cpu_arm: Don't implement virCPUGetVendorForModel Date: Tue, 4 Oct 2022 16:28:51 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.3 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893770374100001 Content-Type: text/plain; charset="utf-8" This patch is effectively a no-op, but I wanted to initialize .getVendorForModel explicitly as implementing this function does not even make sense on ARM. The CPU models in our CPU map are only used for describing host CPU in capabilities XML and cannot be used for guest CPU definition in domain XML anyway. The CPU models listed as supported in domain capabilities XML are just passed through from QEMU. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/cpu/cpu_arm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cpu/cpu_arm.c b/src/cpu/cpu_arm.c index 599bb836ed..409b397155 100644 --- a/src/cpu/cpu_arm.c +++ b/src/cpu/cpu_arm.c @@ -714,6 +714,7 @@ struct cpuArchDriver cpuDriverArm =3D { #endif .decode =3D NULL, .encode =3D NULL, + .getVendorForModel =3D NULL, .dataCopyNew =3D virCPUarmDataCopyNew, .dataFree =3D virCPUarmDataFree, .baseline =3D virCPUarmBaseline, --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893803; cv=none; d=zohomail.com; s=zohoarc; b=dvjxbG9EveqJ+IbxkF5QpDL8b8PZu9R5LeXPiYv9JETT9qmaqdl6ME2i8niXnJ54eJ0mYT+rtkezfA+YvY6LHtKfN7NOcSO+kZqIa3c11z+M/mB10IWOkVhOQwhRRGywndezlTfXr6xXEdeTc0h7CkDFDO4m9XH/I4SobXenx/E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893803; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eWUL3JDo3MjYD3HpYJJ2BrKVNDn/VWD23KxKhEfBlbM=; b=jH0DJuDxgMSszhHcuXEz/LfkGJmOMvrO48/3IjtwBall4tJvNIXwWhmWXD9QRG/vMdV6qHK0/pJclzxXbOuqD5MISd+TDR/hiK1TIukt/63fpYqhRXtN4uPXMpnl5e7XieLDZM1sXxKhEl6nA8LCTzcCP6+uzQNJbeWqYuNhMZM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1664893803397500.05673975095124; Tue, 4 Oct 2022 07:30:03 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-368-lvoB6h9zNfuiJ9WJdayH4Q-1; Tue, 04 Oct 2022 10:29:14 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8CFDB3815D2E; Tue, 4 Oct 2022 14:29:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7749A1415117; Tue, 4 Oct 2022 14:29:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id BEE871943389; Tue, 4 Oct 2022 14:29:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 720011947060 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 419E2492B06; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1EC17492B04 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 66046188FBB; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893802; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=eWUL3JDo3MjYD3HpYJJ2BrKVNDn/VWD23KxKhEfBlbM=; b=PtzulB493qnQ0CBirZc/+esazBgNpHZE/AB1qGcNe5Q6vvDPcIyR1HtCIACdqlVlM30dbz DRVo0UjI4L+WFC1SEqJ+KO9MpnD+HMOaKKq4yuh8q20qB225mplrDCnKgWmfoJqlFzpNyr 0dnQHwvECqvs24PmBeB+c4UZ3TtnaxA= X-MC-Unique: lvoB6h9zNfuiJ9WJdayH4Q-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 09/11] qemu_capabilities: Translate CPU blockers Date: Tue, 4 Oct 2022 16:28:52 +0200 Message-Id: <66863a0e53bce6a5afa8abad85b6ed0dea72190b.1664892459.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893804748100001 Content-Type: text/plain; charset="utf-8" The list of features reported by QEMU as blocking a particular CPU model on the current host cannot be directly used by libvirt (or its users) as QEMU uses different names for some features. We need to translate them before using them or presenting them to users. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_capabilities.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 8e8a84e614..a19622c878 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3907,7 +3907,8 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsAccel *cap= s, =20 =20 static int -virQEMUCapsLoadCPUModels(virQEMUCapsAccel *caps, +virQEMUCapsLoadCPUModels(virArch arch, + virQEMUCapsAccel *caps, xmlXPathContextPtr ctxt, const char *typeStr) { @@ -3972,12 +3973,16 @@ virQEMUCapsLoadCPUModels(virQEMUCapsAccel *caps, cpu->blockers =3D g_new0(char *, nblockers + 1); =20 for (j =3D 0; j < nblockers; j++) { - if (!(cpu->blockers[j] =3D virXMLPropString(blockerNodes[j= ], "name"))) { + g_autofree char *blocker =3D NULL; + + if (!(blocker =3D virXMLPropString(blockerNodes[j], "name"= ))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing blocker name in QEMU " "capabilities cache")); return -1; } + + cpu->blockers[j] =3D g_strdup(virQEMUCapsCPUFeatureFromQEM= U(arch, blocker)); } } =20 @@ -4072,7 +4077,7 @@ virQEMUCapsLoadAccel(virQEMUCaps *qemuCaps, if (virQEMUCapsLoadHostCPUModelInfo(caps, ctxt, typeStr) < 0) return -1; =20 - if (virQEMUCapsLoadCPUModels(caps, ctxt, typeStr) < 0) + if (virQEMUCapsLoadCPUModels(qemuCaps->arch, caps, ctxt, typeStr) < 0) return -1; =20 if (virQEMUCapsLoadMachines(caps, ctxt, typeStr) < 0) @@ -4547,7 +4552,8 @@ virQEMUCapsFormatHostCPUModelInfo(virQEMUCapsAccel *c= aps, =20 =20 static void -virQEMUCapsFormatCPUModels(virQEMUCapsAccel *caps, +virQEMUCapsFormatCPUModels(virArch arch, + virQEMUCapsAccel *caps, virBuffer *buf, const char *typeStr) { @@ -4576,8 +4582,10 @@ virQEMUCapsFormatCPUModels(virQEMUCapsAccel *caps, virBufferAddLit(buf, ">\n"); virBufferAdjustIndent(buf, 2); =20 - for (j =3D 0; cpu->blockers[j]; j++) - virBufferAsprintf(buf, "\n", cpu->bl= ockers[j]); + for (j =3D 0; cpu->blockers[j]; j++) { + virBufferAsprintf(buf, "\n", + virQEMUCapsCPUFeatureToQEMU(arch, cpu->b= lockers[j])); + } =20 virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "\n"); @@ -4629,7 +4637,7 @@ virQEMUCapsFormatAccel(virQEMUCaps *qemuCaps, const char *typeStr =3D virQEMUCapsAccelStr(type); =20 virQEMUCapsFormatHostCPUModelInfo(caps, buf, typeStr); - virQEMUCapsFormatCPUModels(caps, buf, typeStr); + virQEMUCapsFormatCPUModels(qemuCaps->arch, caps, buf, typeStr); virQEMUCapsFormatMachines(caps, buf, typeStr); =20 } --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893763; cv=none; d=zohomail.com; s=zohoarc; b=aIjVdFYifrG9R0Ly9WG5/Ca5YD0+DUPnrAIgI/AhQAu96p4Nd/9iQlM9nLTWxYZu4yPQOMpWLyzqZZrNadtrmGA8mzR+kpCQmqs/8oyhEHVrpC9QZhsRgGolR0S6eT8nMGSo87UojSF4y7ZyilfmeN9tee9Pxj3mrZKQ4RGFLBA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893763; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=K1e8JVTPJ1gsQNaNGdbnFGNqafJL348qlgd+EJ3IA5Q=; b=P9TBmJoAR8QKhRQVqoqNULMVd27f+sSWhCHY/ODNL4QXoCt0zAK2dFRuQYICM/tYwgdlOSOWq7ZLe/pHO7/1X074XNja8f0S/Y3ydZsuyVqSroIx9aoU9JZAlEi47oUNa510GkJEubhZsoe17GoCXXzB2XoG7EwE+98w252HjAk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1664893763922333.0649168469714; Tue, 4 Oct 2022 07:29:23 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-473-TZHk25wmNYOTsdlWSvpnEQ-1; Tue, 04 Oct 2022 10:29:20 -0400 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1D2A82999B53; Tue, 4 Oct 2022 14:29:04 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id C02CE49BB61; Tue, 4 Oct 2022 14:29:03 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id F03BA1943391; Tue, 4 Oct 2022 14:29:01 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 82AAE1947042 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 707D140FF681; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1563A40C206B for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 68F53188FBC; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893761; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=K1e8JVTPJ1gsQNaNGdbnFGNqafJL348qlgd+EJ3IA5Q=; b=U1qDNWgxCgIhf2o8z1dEP3lUqiHykFqkWLDZuf4vxqTkNEu4uX0miI/9mUKKUV6cs4dv0h /mkgbhVpYL/CzgPlbW4NnjX1ytNfAyGm7SB5v+GerNOnU9NH/hjhp35Y/b5S715eORg+7O ROdX583gj5qYuVnpKlzdf3FKz+8pNSI= X-MC-Unique: TZHk25wmNYOTsdlWSvpnEQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 10/11] domain_capabilities: Add blockers attribute for CPU models Date: Tue, 4 Oct 2022 16:28:53 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893764352100002 Content-Type: text/plain; charset="utf-8" We already show whether a specific CPU model is usable on the current host without modification via the 'usable' attribute of each CPU model. But it may be useful to actually see what features are blocking each CPU model from being usable. Especially when we already fetch the info from QEMU and propagating it to domain capabilities XML is all we need to do. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- docs/formatdomaincaps.rst | 16 ++-- src/conf/domain_capabilities.c | 7 ++ src/conf/schemas/domaincaps.rng | 5 ++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 36 ++++----- .../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 72 +++++++++--------- tests/domaincapsdata/qemu_4.2.0.s390x.xml | 2 +- tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 36 ++++----- .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 40 +++++----- .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 72 +++++++++--------- tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 40 +++++----- .../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 68 ++++++++--------- .../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 72 +++++++++--------- tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 68 ++++++++--------- .../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 68 ++++++++--------- .../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 72 +++++++++--------- tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 68 ++++++++--------- .../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 74 +++++++++---------- tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 74 +++++++++---------- tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 74 +++++++++---------- tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 74 +++++++++---------- tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 70 +++++++++--------- .../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 66 ++++++++--------- .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 70 +++++++++--------- tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 66 ++++++++--------- 31 files changed, 907 insertions(+), 893 deletions(-) diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst index 6ce780fb69..81211a3fe6 100644 --- a/docs/formatdomaincaps.rst +++ b/docs/formatdomaincaps.rst @@ -191,10 +191,10 @@ CPUs `__. - Broadwell= + Broadwell Broadwel= l-noTSX - Haswell<= /model> - EPYC-Milan<= /model> + Haswell + EPYC-Milan ... @@ -224,10 +224,12 @@ more details about it: by a dedicated ``model`` element. The ``usable`` attribute specifies wh= ether the model can be used directly on the host. When usable=3D'no' the corresponding model cannot be used without disabling some features that= the - CPU of such model is expected to have. A special value ``unknown`` indi= cates - libvirt does not have enough information to provide the usability data.= The - ``deprecated`` attribute reflects the hypervisor's policy on usage of t= his - model :since:`(since 7.1.0)`. The ``vendor`` attribute :since:`(since 8= .9.0)` + CPU of such model is expected to have. :since:`Since 8.9.0` the ``block= ers`` + attribute contains a comma separated list of these features. A special = value + ``unknown`` of the attribute ``usable`` indicates libvirt does not have + enough information to provide the usability data. The ``deprecated`` + attribute reflects the hypervisor's policy on usage of this model + :since:`(since 7.1.0)`. The ``vendor`` attribute :since:`(since 8.9.0)` contains the vendor of the CPU model for users who want to use CPU mode= ls with specific vendors only. CPU models with undefined vendor will be li= sted with ``vendor=3D'unkwnown'``. diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index b5d8288982..4a6418ca37 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -386,6 +386,13 @@ virDomainCapsCPUCustomFormat(virBuffer *buf, else virBufferAddLit(buf, " vendor=3D'unknown'"); =20 + if (model->usable =3D=3D VIR_DOMCAPS_CPU_USABLE_NO && + model->blockers && + *model->blockers) { + virBufferAsprintf(buf, " blockers=3D'%s'", + g_strjoinv(",", model->blockers)); + } + virBufferAsprintf(buf, ">%s\n", model->name); } =20 diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.= rng index c4cb9afeba..7783b49585 100644 --- a/src/conf/schemas/domaincaps.rng +++ b/src/conf/schemas/domaincaps.rng @@ -162,6 +162,11 @@ + + + + + diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-q35.x86_64.xml index dab12e5888..8ca9e8d2b2 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -63,7 +63,7 @@ qemu64 qemu32 - phenom + phenom pentium3 pentium2 pentium @@ -72,42 +72,42 @@ kvm32 coreduo core2duo - athlon + athlon Westmere-IBRS Westmere - Snowridge - Skylake-Server-noTSX-IBRS - Skylake-Server-IBRS - Skylake-Server + Snowridge + Skylake-Ser= ver-noTSX-IBRS + Skylake-Ser= ver-IBRS + Skylake-Ser= ver Skylake-Client-noTSX-IBRS Skylake-Client-IBRS Skylake-Client SandyBridge-IBRS SandyBridge Penryn - Opteron_G5 - Opteron_G4 - Opteron_G3 + Opteron_G5 + Opteron_G4 + O= pteron_G3 Opteron_G2 Opteron_G1 Nehalem-IBRS Nehalem IvyBridge-IBRS IvyBridge - Icelake-Server-noTSX - Icelake-Server - Icelake-Client-noTSX - Icelake-Client + Icelake-Server-noTSX + Icelake-Server + Icelake-Client-noTSX + Icelake-Client Haswell-noTSX-IBRS Haswell-noTSX Haswell-IBRS Haswell - EPYC-IBPB - EPYC - Dhyana + EPYC-IBPB + EPYC + Dhyana Conroe - Cascadelake-Server-noTSX - Cascadelake-Server + Cascadelake-Server-noTSX + Cascadelake-Server Broadwell-noTSX-IBRS Broadwell-noTSX Broadwell-IBRS ... --=20 2.37.3 From nobody Sat Apr 27 20:52:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1664893764; cv=none; d=zohomail.com; s=zohoarc; b=bRB29ALycCphHaj8O23kixeI06Jpo9917Mooi7oV0xEQwvmQ9Xegh+k80VtCA0SCk18/U1hMjPyyUPVoJ3uVWQqjl7rqDtXTpCz+0ZDxC+eqj8P2KY+nY+FP6cCshauCsYXxw9B9X7vMEHefhbc9DUOvuSHX0g/WX0apZLO0jsk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1664893764; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c4rAMXlMowvV/7WXFaFwZIoUfFJt/bVN7H8ON++gSR0=; b=RXtRjxe+AlT2wsIUpSmhX+gubqtwONgG1EtLIC3ealL59jXCSulqOgvqv0YBRhUX3mGvLpgDRchFJig4WLI5FWEOeB1OKUNmoyXml2ub8qCshnCDNNfcAUgdlzP/4ZavroxjDYbhfiv4kN4Xtl4rcTxJkoB1tXcBcNmcu6OUyIc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1664893764098956.6258977792011; Tue, 4 Oct 2022 07:29:24 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-643-2cyCLO79MbSq_xXZA67qcQ-1; Tue, 04 Oct 2022 10:29:16 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 754333C138B0; Tue, 4 Oct 2022 14:29:04 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4C8DA2166B32; Tue, 4 Oct 2022 14:29:04 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 591EB1947B90; Tue, 4 Oct 2022 14:29:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 789321947061 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 47D57202E9E2; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.40.192.36]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 25079202E9E0 for ; Tue, 4 Oct 2022 14:29:00 +0000 (UTC) Received: by rein.int.mamuti.net (Postfix, from userid 500) id 6BC9D188FBD; Tue, 4 Oct 2022 16:28:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1664893762; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=c4rAMXlMowvV/7WXFaFwZIoUfFJt/bVN7H8ON++gSR0=; b=IfHE7HROti+nz9X//WWAnib2wSYG9igxmgd4QnMDJDfAttNzJx0fzB02Bmm0gW74WbKYjo XrmEIMFa370zTxvqG9FLYDsjAmRddHeWrEKDfTEFEk3Qz4zdslFywifB14tEvyzFBl0HQ1 /cUi3p/5JCvYM5ZCY5V9NBkED2SQXQQ= X-MC-Unique: 2cyCLO79MbSq_xXZA67qcQ-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 11/11] NEWS: Document domain capabilities improvements Date: Tue, 4 Oct 2022 16:28:54 +0200 Message-Id: <292ecb2ed054f0fd5eab036181e62d29f4c18573.1664892459.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1664893764347100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- NEWS.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index 3049aa83f9..802d96d4ca 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -19,6 +19,17 @@ v8.9.0 (unreleased) =20 * **Improvements** =20 + * Add vendor attribute for CPU models in domain capabilities + + Users can now see the vendor of each CPU model in domain capabilities = and + use it, e.g., for filtering usable CPU models based on host architectu= re. + + * Add blockers attribute for CPU models in domain capabilities + + In addition to reporting whether each CPU model is usable on the curre= nt + host domain capabilities XML now contains a list of features that block + usability of a particular CPU model. + * **Bug fixes** =20 =20 --=20 2.37.3