From nobody Thu May 15 07:13:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1512652835533522.0962218140797; Thu, 7 Dec 2017 05:20:35 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 86B6E4903D; Thu, 7 Dec 2017 13:20:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 40D7B7C549; Thu, 7 Dec 2017 13:20:33 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id B9FA44BB79; Thu, 7 Dec 2017 13:20:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id vB7DKCYX011076 for ; Thu, 7 Dec 2017 08:20:12 -0500 Received: by smtp.corp.redhat.com (Postfix) id E03DD69416; Thu, 7 Dec 2017 13:20:12 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.105]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B3BC86940C for ; Thu, 7 Dec 2017 13:20:09 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 860561000E7; Thu, 7 Dec 2017 14:20:08 +0100 (CET) From: Jiri Denemark To: libvir-list@redhat.com Date: Thu, 7 Dec 2017 14:20:06 +0100 Message-Id: <49e46c086e1bd2a70cee7937887b011512b7edf3.1512652445.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/2] qemu: Separate fetching CPU definitions from filling qemuCaps X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 07 Dec 2017 13:20:34 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" virQEMUCapsProbeQMPCPUDefinitions is now a small wrapper which fills in qemuCaps with CPU models fetched by virQEMUCapsFetchCPUDefinitions. Signed-off-by: Jiri Denemark --- src/qemu/qemu_capabilities.c | 59 +++++++++++++++++++++++++++-------------= ---- src/qemu/qemu_capabilities.h | 1 + 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 29714855b0..8c65de956e 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2956,30 +2956,19 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemu= Caps, } =20 =20 -int -virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps, - qemuMonitorPtr mon, - bool tcg) +virDomainCapsCPUModelsPtr +virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon) { - virDomainCapsCPUModelsPtr models; - qemuMonitorCPUDefInfoPtr *cpus; - int ncpus; - int ret =3D -1; + virDomainCapsCPUModelsPtr models =3D NULL; + qemuMonitorCPUDefInfoPtr *cpus =3D NULL; + int ncpus =3D 0; size_t i; =20 - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_DEFINITIONS)) - return 0; - if ((ncpus =3D qemuMonitorGetCPUDefinitions(mon, &cpus)) < 0) - return -1; + goto error; =20 if (!(models =3D virDomainCapsCPUModelsNew(ncpus))) - goto cleanup; - - if (tcg || !virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) - qemuCaps->tcgCPUModels =3D models; - else - qemuCaps->kvmCPUModels =3D models; + goto error; =20 for (i =3D 0; i < ncpus; i++) { virDomainCapsCPUUsable usable =3D VIR_DOMCAPS_CPU_USABLE_UNKNOWN; @@ -2991,18 +2980,44 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qe= muCaps, =20 if (virDomainCapsCPUModelsAddSteal(models, &cpus[i]->name, usable, &cpus[i]->blockers) < 0) - goto cleanup; + goto error; } =20 - ret =3D 0; - cleanup: for (i =3D 0; i < ncpus; i++) qemuMonitorCPUDefInfoFree(cpus[i]); VIR_FREE(cpus); - return ret; + return models; + + error: + virObjectUnref(models); + models =3D NULL; + goto cleanup; } =20 + +int +virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps, + qemuMonitorPtr mon, + bool tcg) +{ + virDomainCapsCPUModelsPtr models =3D NULL; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_DEFINITIONS)) + return 0; + + if (!(models =3D virQEMUCapsFetchCPUDefinitions(mon))) + return -1; + + if (tcg || !virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) + qemuCaps->tcgCPUModels =3D models; + else + qemuCaps->kvmCPUModels =3D models; + + return 0; +} + + static int virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps, qemuMonitorPtr mon, diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 9f239a0ecf..e73dbaa557 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -485,6 +485,7 @@ int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCap= s, virDomainCapsCPUUsable usable); virDomainCapsCPUModelsPtr virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemu= Caps, virDomainVirtType t= ype); +virDomainCapsCPUModelsPtr virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mo= n); =20 typedef enum { /* Host CPU definition reported in domain capabilities. */ --=20 2.15.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list