From nobody Thu Apr 25 20:07:02 2024 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; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1570539358; cv=none; d=zoho.com; s=zohoarc; b=mdMkTjIqOqaoS7FerbCP4VtLVokgTzRMNAijc7x4nIb/4oTh/a5TWUONPyWMG+YrTVcgvT4YSQHZKwPC00x46E+60HMomrxO4SHIlcBCNtrRi9Y2G1xJ1mfv85Ca/sj2K/d27Qc1OLVBRt1b1w5UID6wJmdEPJv+Kz9gN8jPZN0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1570539358; 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=0JU8FYlsHraQ935myKzn8SjZ6hlDidiC7jiYqWwF+j8=; b=E2rye8lQ0I/6AiQ7LT2bKcFVPKMXkScCj4tYSlt023147/Dj88wIn6BMIqj9g5ngkbgS3Fir2ZLQHmE9llMrOalPHb2RDm9AJuOFwX0kw/0latDnrfrCHlSfRZMvKR+6LEr2yLld01dXk9N8bvtViZenlBZe5LhPmXKOwgCEUXQ= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1570539358766843.2489264342272; Tue, 8 Oct 2019 05:55:58 -0700 (PDT) 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 E6EB7806A53; Tue, 8 Oct 2019 12:55:56 +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 B63A66012A; Tue, 8 Oct 2019 12:55:56 +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 5886F4EBC0; Tue, 8 Oct 2019 12:55:56 +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 x98CrJsQ027255 for ; Tue, 8 Oct 2019 08:53:19 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5B14461F22; Tue, 8 Oct 2019 12:53:19 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.188]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 30A585B6A5 for ; Tue, 8 Oct 2019 12:53:13 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 3FDE6100289; Tue, 8 Oct 2019 14:53:12 +0200 (CEST) From: Jiri Denemark To: libvir-list@redhat.com Date: Tue, 8 Oct 2019 14:53:09 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/2] Revert "domcaps: Treat host models as case-insensitive strings" 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: , 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.6.2 (mx1.redhat.com [10.5.110.67]); Tue, 08 Oct 2019 12:55:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" This reverts commit 2d8721e2606806164782028ecf1ee33a9bbaa8fe. This fix was both incomplete and too general. It only fixed domain startup, but libvirt would still report empty list of supported CPU models with recent QEMU for ppc64. On the other hand, while ppc64 QEMU ignores case when looking up CPU model names, x86_64 QEMU does case sensitive lookup. Without reverting this patch, libvirt could happily accept CPU model names which are not supported by QEMU. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_capabilities.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 1000d8b969..fe93388cce 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -278,7 +278,7 @@ virDomainCapsCPUModelsGet(virDomainCapsCPUModelsPtr cpu= Models, return NULL; =20 for (i =3D 0; i < cpuModels->nmodels; i++) { - if (STRCASEEQ(cpuModels->models[i].name, name)) + if (STREQ(cpuModels->models[i].name, name)) return cpuModels->models + i; } =20 --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu Apr 25 20:07:02 2024 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; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1570539246; cv=none; d=zoho.com; s=zohoarc; b=nPPMVdz9+zkTDrR82FUn8WdrIsQsuOz3yBvxmb2Gk/O6hLBthdNebefhkiqr0N6/PyStb1ahWbDe5Sh+83zewr3eD9SJUQ3QYWa5Th+VXajhsJvcIzX7MdmFyBdonBPdmtL0FRmXvPeIlz38+rEbh32O2l1QrtFTPwN7Wkhz2cY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1570539246; 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=LMbFmMFNqrLN94MDGfPpyNaK5qXQzGvdDpt39Y0ShDU=; b=n1VMk0AO7DEe2QXgeQiNZ9wYNQJzdbEV5N4QJ66ZLLqyIjhoBhfAgp0k7rq70x3Pgp+thnkYu1BQ9/qC65AowgoiKyMbOUiSpNW+qhluzmJJTlxV4USR8T7u8bo+Bjz6Eb0PvyazwLaa2pFQIsf+gr420VhxkuC5e8eV9/khljQ= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1570539246294823.7061292536989; Tue, 8 Oct 2019 05:54:06 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F0689126E; Tue, 8 Oct 2019 12:54:02 +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 2084E60BE0; Tue, 8 Oct 2019 12:54:02 +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 D96B84E58A; Tue, 8 Oct 2019 12:54:00 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x98CrGI5027240 for ; Tue, 8 Oct 2019 08:53:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id E11553DE0; Tue, 8 Oct 2019 12:53:16 +0000 (UTC) Received: from virval.usersys.redhat.com (unknown [10.43.2.188]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 90075194B2 for ; Tue, 8 Oct 2019 12:53:13 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 42777101708; Tue, 8 Oct 2019 14:53:12 +0200 (CEST) From: Jiri Denemark To: libvir-list@redhat.com Date: Tue, 8 Oct 2019 14:53:10 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/2] qemu: Adapt to changed ppc64 CPU model names 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: , 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.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Tue, 08 Oct 2019 12:54:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" QEMU 2.11 for ppc64 changed all CPU model names to lower case. Since libvirt can't change the model names for compatibility reasons, we need to translate the matching lower case models to the names known by libvirt. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_capabilities.c | 26 +++++++++++++++++-- src/qemu/qemu_capabilities.h | 3 ++- src/qemu/qemu_process.c | 2 +- .../qemu_2.12.0.ppc64.xml | 6 ++++- .../caps_2.12.0.ppc64.xml | 12 ++++----- .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 12 ++++----- .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 12 ++++----- .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 12 ++++----- 8 files changed, 56 insertions(+), 29 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 46a056340b..a340973f14 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2437,7 +2437,8 @@ virQEMUCapsProbeQMPMachineProps(virQEMUCapsPtr qemuCa= ps, =20 =20 virDomainCapsCPUModelsPtr -virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon) +virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon, + virArch arch) { virDomainCapsCPUModelsPtr models =3D NULL; qemuMonitorCPUDefInfoPtr *cpus =3D NULL; @@ -2447,6 +2448,27 @@ virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mon) if ((ncpus =3D qemuMonitorGetCPUDefinitions(mon, &cpus)) < 0) return NULL; =20 + /* QEMU 2.11 for Power renamed all CPU models to lower case, we need to + * translate them back to libvirt's upper case model names. */ + if (ARCH_IS_PPC(arch)) { + VIR_AUTOSTRINGLIST libvirtModels =3D NULL; + char **name; + + if (virCPUGetModels(arch, &libvirtModels) < 0) + goto error; + + for (name =3D libvirtModels; name && *name; name++) { + for (i =3D 0; i < ncpus; i++) { + if (STRCASENEQ(cpus[i]->name, *name)) + continue; + + VIR_FREE(cpus[i]->name); + if (VIR_STRDUP(cpus[i]->name, *name) < 0) + goto error; + } + } + } + if (!(models =3D virDomainCapsCPUModelsNew(ncpus))) goto error; =20 @@ -2486,7 +2508,7 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemu= Caps, if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_DEFINITIONS)) return 0; =20 - if (!(models =3D virQEMUCapsFetchCPUDefinitions(mon))) + if (!(models =3D virQEMUCapsFetchCPUDefinitions(mon, qemuCaps->arch))) return -1; =20 if (tcg || !virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 72da3691f2..6c77b9d943 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -567,7 +567,8 @@ int virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCap= s, virDomainCapsCPUUsable usable); virDomainCapsCPUModelsPtr virQEMUCapsGetCPUDefinitions(virQEMUCapsPtr qemu= Caps, virDomainVirtType t= ype); -virDomainCapsCPUModelsPtr virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mo= n); +virDomainCapsCPUModelsPtr virQEMUCapsFetchCPUDefinitions(qemuMonitorPtr mo= n, + virArch arch); =20 typedef enum { /* Host CPU definition reported in domain capabilities. */ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index a50cd54393..7774a82972 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4379,7 +4379,7 @@ qemuProcessFetchCPUDefinitions(virQEMUDriverPtr drive= r, if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) goto error; =20 - models =3D virQEMUCapsFetchCPUDefinitions(priv->mon); + models =3D virQEMUCapsFetchCPUDefinitions(priv->mon, vm->def->os.arch); =20 if (qemuDomainObjExitMonitor(driver, vm) < 0) goto error; diff --git a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml b/tests/domai= ncapsschemadata/qemu_2.12.0.ppc64.xml index 99de2b0a8e..e8d3c22337 100644 --- a/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml +++ b/tests/domaincapsschemadata/qemu_2.12.0.ppc64.xml @@ -29,7 +29,11 @@ POWER8 - + + POWER9 + POWER8 + POWER7 + diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemuc= apabilitiesdata/caps_2.12.0.ppc64.xml index fd9ae0bcb8..ede28439cd 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -163,12 +163,12 @@ - + - + - + @@ -601,12 +601,12 @@ - + - + - + diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_3.0.0.ppc64.xml index 61be1df782..221e0d1756 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml @@ -164,12 +164,12 @@ - + - + - + @@ -602,12 +602,12 @@ - + - + - + diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_3.1.0.ppc64.xml index 400dc45be4..4685081945 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml @@ -166,12 +166,12 @@ - + - + - + @@ -604,12 +604,12 @@ - + - + - + diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemuca= pabilitiesdata/caps_4.0.0.ppc64.xml index 9ea6f4d046..86e146effc 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -179,12 +179,12 @@ - + - + - + @@ -617,12 +617,12 @@ - + - + - + --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list