From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780064151; cv=none; d=zohomail.com; s=zohoarc; b=YC8t3ap0j6U8g3MpRIJ3UP1zDFB+haRVCAEWNSVDCffzvWFu9UszEdo8Cb/3ajJntHVjOa4kIv/CsDZ9alwDurKLv3fndLK3+za7YsTSBTlykCSyGvIpgi7+iixd/iqgezazy7r2M3Gaa3pxcAnhcLPaWk7cXvFXxY7iPTbthfQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780064151; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=M1uHkeQrpdzbheI0UKpkpGOWri+27Rc6uuec4DgVyKg=; b=Xy6tNdUw7uBXJmOzfyCHB+JGUtynGK95ZaFLWT8gpayk8zWcta/xnYi85+BkxoLhkhfwxIENr8kvtANqt5uIqXYjN7XtPgH93eVbuz6YylyjAxEtzVcJo8Fi0g+XnC/vyBccUWz7d6yy+Sr/Qobx10dPYzVuGMxPu+fcfOAdSDk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780064151385277.8831846102149; Fri, 29 May 2026 07:15:51 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 0BA3441A0C; Fri, 29 May 2026 10:15:49 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 545863FAAD; Fri, 29 May 2026 10:12:43 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id CF8F43F959; Fri, 29 May 2026 10:12:31 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 22A203F965 for ; Fri, 29 May 2026 10:12:31 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-588-ISM6GEQ2O52Tw5vPtnHjzA-1; Fri, 29 May 2026 10:12:28 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0056A180047F for ; Fri, 29 May 2026 14:12:27 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 6FFA11955F22 for ; Fri, 29 May 2026 14:12:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063950; h=from:from: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; bh=M1uHkeQrpdzbheI0UKpkpGOWri+27Rc6uuec4DgVyKg=; b=ijL2wKHjoEcyM2Zo5Xw1KSDl8GbTSspa/GRrQ0zMBeDHpfQjtIUMUmKaRHOXxrwVyb/ql7 X5tyhjoLeX+y7feN9YUMcKraBJKdy8dijaZ95SVCFUK84OiIH2Gt9/aEN2eyFM0EzId6hb c62MqEovS/06F+FflJS8rDiwqjNiXEE= X-MC-Unique: ISM6GEQ2O52Tw5vPtnHjzA-1 X-Mimecast-MFC-AGG-ID: ISM6GEQ2O52Tw5vPtnHjzA_1780063947 To: devel@lists.libvirt.org Subject: [PATCH v2 01/16] cpu_conf: Introduce virCPUDefSortFeatures Date: Fri, 29 May 2026 16:12:06 +0200 Message-ID: <8443eef43f4ec0dc6d34d672f8cda0f4c975323c.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: a64ovKJNLSNKGdXJydYPPvqolQnuoBKdq9gDsHSE7P4_1780063947 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: JHZYGWMUZBXYHQG2AEGOEMG4E26NZORY X-Message-ID-Hash: JHZYGWMUZBXYHQG2AEGOEMG4E26NZORY X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780064152667158500 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Separate the sorting code from virCPUExpandFeatures into a standalone function. Signed-off-by: Jiri Denemark --- Notes: Version 2: - new patch src/conf/cpu_conf.c | 20 ++++++++++++++++++++ src/conf/cpu_conf.h | 3 +++ src/cpu/cpu.c | 15 +-------------- src/libvirt_private.syms | 1 + 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7aeedf64f5..f5a2004ee6 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -1277,3 +1277,23 @@ virCPUDefListFree(virCPUDef **cpus) =20 g_free(cpus); } + + +static int +virCPUFeatureDefCompare(const void *p1, + const void *p2, + void *opaque G_GNUC_UNUSED) +{ + const virCPUFeatureDef *f1 =3D p1; + const virCPUFeatureDef *f2 =3D p2; + + return strcmp(f1->name, f2->name); +} + + +void +virCPUDefSortFeatures(virCPUDef *cpu) +{ + g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features= ), + virCPUFeatureDefCompare, NULL); +} diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h index cfb8f1a461..0cac1a1489 100644 --- a/src/conf/cpu_conf.h +++ b/src/conf/cpu_conf.h @@ -280,3 +280,6 @@ virCPUDefListParse(const char **xmlCPUs, virCPUType cpuType); void virCPUDefListFree(virCPUDef **cpus); + +void +virCPUDefSortFeatures(virCPUDef *cpu); diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 233686485d..d81e620a1d 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -1125,18 +1125,6 @@ virCPUConvertLegacy(virArch arch, } =20 =20 -static int -virCPUFeatureCompare(const void *p1, - const void *p2, - void *opaque G_GNUC_UNUSED) -{ - const virCPUFeatureDef *f1 =3D p1; - const virCPUFeatureDef *f2 =3D p2; - - return strcmp(f1->name, f2->name); -} - - /** * virCPUExpandFeatures: * @@ -1168,8 +1156,7 @@ virCPUExpandFeatures(virArch arch, driver->expandFeatures(cpu) < 0) return -1; =20 - g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features= ), - virCPUFeatureCompare, NULL); + virCPUDefSortFeatures(cpu); =20 VIR_DEBUG("nfeatures=3D%zu", cpu->nfeatures); return 0; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 2391f01bc7..95f7b409db 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -118,6 +118,7 @@ virCPUDefNew; virCPUDefParseXML; virCPUDefParseXMLString; virCPUDefRef; +virCPUDefSortFeatures; virCPUDefStealModel; virCPUDefUpdateFeature; virCPUMaxPhysAddrModeTypeFromString; --=20 2.54.0 From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780064268; cv=none; d=zohomail.com; s=zohoarc; b=I+R9gjdKK0ZezYVr/eBrWZTFQhryk6mrUBc2PCTndSlEZD5Sg8qNmWC2gQxhhMx4Fu5XWgAT8qLh2MPAgwbzuqt+sZA9A4Oh2HfO5bTJu44k6zUC5kMK+ONIOcOpMtqLOOymIDhyGrrJsYsBj9yqKMVjtGSdzv7YmYM81JjDD6s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780064268; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=PbBIGU0xzVGgkbRF/gL/JJgJBz1XvH31EMeYNwzCDEk=; b=RfXH3LIlV31U5n00C4zMIdhAJ0avoNc/K4650CKKOAcvqcpf6EnMye7TfwaKCCAIOc3yLd3TWafAH5MQXyhHe1KmpmXAlf/x7HvXdRbhCuH7LP6zc1RG0Tc8Han7V3RHHn1Rowr81org+q42dy1ZPMOll85Kdbzp998xkZfK3Nw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780064268749763.6962569032997; Fri, 29 May 2026 07:17:48 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B53F441DC9; Fri, 29 May 2026 10:17:47 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 4CFC041C37; Fri, 29 May 2026 10:12:49 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 199853F959; Fri, 29 May 2026 10:12:33 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 689DA3F965 for ; Fri, 29 May 2026 10:12:32 -0400 (EDT) Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-642-f_h6kTTdM8GZ3y2eqYvGYQ-1; Fri, 29 May 2026 10:12:30 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 892121956054 for ; Fri, 29 May 2026 14:12:29 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 042721800357 for ; Fri, 29 May 2026 14:12:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063952; h=from:from: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; bh=PbBIGU0xzVGgkbRF/gL/JJgJBz1XvH31EMeYNwzCDEk=; b=W56FOolhmKwrGAKCFAyG700oZmTT2IVZmn7wwcg924VSBUeNhYBkrhBmbRA90AZnS7lkk1 PgKu8ILkgZ4Ly7UvxL6iMH0Fj1D13GkqMawwDG+LBbMupA7VAp1PYImCfo6TFYmJALulYe QiNtJeGJ/RB6HB2y2u05hzvEdGsQhhA= X-MC-Unique: f_h6kTTdM8GZ3y2eqYvGYQ-1 X-Mimecast-MFC-AGG-ID: f_h6kTTdM8GZ3y2eqYvGYQ_1780063949 To: devel@lists.libvirt.org Subject: [PATCH v2 02/16] qemu_capabilities: Split virQEMUCapsFillDomainCPUCaps Date: Fri, 29 May 2026 16:12:07 +0200 Message-ID: <900d0a6fa407ee52b95de9c315730955a895e918.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: RJY9-nwRndRuqz_4Dp1JQWPxuvSP6kmA6tDJw1GrErA_1780063949 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TQQZ3RY47TKZCRKU22BQEXTOTCU3BMIF X-Message-ID-Hash: TQQZ3RY47TKZCRKU22BQEXTOTCU3BMIF X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780064274125154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Each CPU mode is filled in its own dedicated function. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- Notes: Version 2: - no change src/qemu/qemu_capabilities.c | 96 ++++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 32 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 12af7c4616..90bd43e628 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6606,6 +6606,66 @@ virQEMUCapsFillDomainOSCaps(virDomainCapsOS *os, } =20 =20 +static void +virQEMUCapsFillDomainCPUHostPassthrough(virQEMUCaps *qemuCaps, + virDomainCaps *domCaps) +{ + domCaps->cpu.hostPassthrough =3D true; + + domCaps->cpu.hostPassthroughMigratable.report =3D true; + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MIGRATABLE)) { + VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.hostPassthroughMigratable, + VIR_TRISTATE_SWITCH_ON); + } + VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.hostPassthroughMigratable, + VIR_TRISTATE_SWITCH_OFF); +} + + +static void +virQEMUCapsFillDomainCPUMaximum(virDomainCaps *domCaps) +{ + domCaps->cpu.maximum =3D true; + + domCaps->cpu.maximumMigratable.report =3D true; + VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.maximumMigratable, + VIR_TRISTATE_SWITCH_ON); + VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.maximumMigratable, + VIR_TRISTATE_SWITCH_OFF); +} + + +static void +virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuCaps, + virDomainCaps *domCaps) +{ + virCPUDef *cpu =3D virQEMUCapsGetHostModel(qemuCaps, domCaps->virttype, + VIR_QEMU_CAPS_HOST_CPU_REPORT= ED); + + domCaps->cpu.hostModel =3D virCPUDefCopy(cpu); + domCaps->cpu.hostModel->addr =3D virQEMUCapsGetHostPhysAddr(qemuCaps, + domCaps->vir= ttype); +} + + +static void +virQEMUCapsFillDomainCPUCustom(virQEMUCaps *qemuCaps, + virDomainCaps *domCaps) +{ + const char *forbidden[] =3D { "host", NULL }; + g_auto(GStrv) models =3D NULL; + + if (virCPUGetModels(domCaps->arch, &models) >=3D 0) { + domCaps->cpu.custom =3D virQEMUCapsGetCPUModels(qemuCaps, + domCaps->virttype, + (const char **)model= s, + forbidden); + } else { + domCaps->cpu.custom =3D NULL; + } +} + + static void virQEMUCapsFillDomainCPUCaps(virQEMUCaps *qemuCaps, virArch hostarch, @@ -6614,53 +6674,25 @@ virQEMUCapsFillDomainCPUCaps(virQEMUCaps *qemuCaps, if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, VIR_CPU_MODE_HOST_PASSTHROUGH, domCaps->machine)) { - domCaps->cpu.hostPassthrough =3D true; - - domCaps->cpu.hostPassthroughMigratable.report =3D true; - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MIGRATABLE)) { - VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.hostPassthroughMigratabl= e, - VIR_TRISTATE_SWITCH_ON); - } - VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.hostPassthroughMigratable, - VIR_TRISTATE_SWITCH_OFF); + virQEMUCapsFillDomainCPUHostPassthrough(qemuCaps, domCaps); } =20 if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, VIR_CPU_MODE_MAXIMUM, domCaps->machine)) { - domCaps->cpu.maximum =3D true; - - domCaps->cpu.maximumMigratable.report =3D true; - VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.maximumMigratable, - VIR_TRISTATE_SWITCH_ON); - VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.maximumMigratable, - VIR_TRISTATE_SWITCH_OFF); + virQEMUCapsFillDomainCPUMaximum(domCaps); } =20 if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, VIR_CPU_MODE_HOST_MODEL, domCaps->machine)) { - virCPUDef *cpu =3D virQEMUCapsGetHostModel(qemuCaps, domCaps->virt= type, - VIR_QEMU_CAPS_HOST_CPU_= REPORTED); - domCaps->cpu.hostModel =3D virCPUDefCopy(cpu); - domCaps->cpu.hostModel->addr =3D virQEMUCapsGetHostPhysAddr(qemuCa= ps, - domCaps-= >virttype); + virQEMUCapsFillDomainCPUHostModel(qemuCaps, domCaps); } =20 if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, VIR_CPU_MODE_CUSTOM, domCaps->machine)) { - const char *forbidden[] =3D { "host", NULL }; - g_auto(GStrv) models =3D NULL; - - if (virCPUGetModels(domCaps->arch, &models) >=3D 0) { - domCaps->cpu.custom =3D virQEMUCapsGetCPUModels(qemuCaps, - domCaps->virttyp= e, - (const char **)m= odels, - forbidden); - } else { - domCaps->cpu.custom =3D NULL; - } + virQEMUCapsFillDomainCPUCustom(qemuCaps, domCaps); } } =20 --=20 2.54.0 From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780064385; cv=none; d=zohomail.com; s=zohoarc; b=e8I2JmOOp8Mh+Y6OwObEzw0l3OIrr0auDn55cYev5ypF3azgnwFvsyGzF8kH2XAnwpPwFoP0NjuEQm2/foEsHMsa3WmGMM7QzpNmHc7F4KFMfV9VuVqk9PLdfPrLE5mFQ+6fGpAiuagGggMKwu2CEt0eWHH19WFUDOsUM7NmN1M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780064385; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=GByCpR4yLhkTSi2ylbjbotJhIVen+hjst+4xi/vavi4=; b=RFQ/Uihifhy7DI6SdV2jFWs1+lANFgO5Wy5ObWBKZASvVq5IDB5HFbRExa9FPXSJ8SRnT73HOrS1IGliUQu2t4N6aFYbwrsKwm0BTMH6YfGsprneOkTCDn9JrGgewLgQo5CMRgllRTOLkAVsgk7Ygya9vj/5cjtPrBtkxi9/6Cs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 178006438565118.311398920968145; Fri, 29 May 2026 07:19:45 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 25FD64184B; Fri, 29 May 2026 10:19:43 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 31D4641D1A; Fri, 29 May 2026 10:13:15 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 5C13C41998; Fri, 29 May 2026 10:13:08 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3EF87419D3 for ; Fri, 29 May 2026 10:12:37 -0400 (EDT) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-136-YBuADuCvM3-EhQqrgcZaoA-1; Fri, 29 May 2026 10:12:32 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 027A619560B4 for ; Fri, 29 May 2026 14:12:32 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 652D71955F22 for ; Fri, 29 May 2026 14:12:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063956; h=from:from: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; bh=GByCpR4yLhkTSi2ylbjbotJhIVen+hjst+4xi/vavi4=; b=fFzl2Ql5qF/7VEY8bYiKliVuAVaW86fKiFWwrMgRYnIcOrTTIEX+T/2waLcdGjC3Os0AsU dADpQUedc8jhD1QsebKXcrt31TNNW4ZfpAI/Os62XNWJw9yV3rxLJpBY34LLHxqX7GRcLD fbrWtMP3Ptsd2Wv4ASrIxnrWGWu+nE4= X-MC-Unique: YBuADuCvM3-EhQqrgcZaoA-1 X-Mimecast-MFC-AGG-ID: YBuADuCvM3-EhQqrgcZaoA_1780063952 To: devel@lists.libvirt.org Subject: [PATCH v2 03/16] qemu: Move domain caps flags handling to virQEMUCapsFillDomainCPUHostModel Date: Fri, 29 May 2026 16:12:08 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 7atvFBzyIrp5eLklWJWhhjDw3OA00cpzHPFPVii1lBg_1780063952 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: OQKQ26XCNQSQPDAJRJAK5SZGLIHRKKHO X-Message-ID-Hash: OQKQ26XCNQSQPDAJRJAK5SZGLIHRKKHO X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780064387190154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark We will need to generate the capabilities in a different way based on the flags. Signed-off-by: Jiri Denemark --- Notes: Version 2: - some hunks were included in v1 by accident and were moved to the correct patch in v2 src/qemu/qemu_capabilities.c | 34 ++++++++++++++++++++++++---------- src/qemu/qemu_capabilities.h | 3 ++- src/qemu/qemu_conf.c | 6 ++++-- src/qemu/qemu_conf.h | 3 ++- src/qemu/qemu_driver.c | 15 ++------------- tests/domaincapstest.c | 2 +- 6 files changed, 35 insertions(+), 28 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 90bd43e628..7b1c0b2372 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6637,14 +6637,26 @@ virQEMUCapsFillDomainCPUMaximum(virDomainCaps *domC= aps) =20 static void virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuCaps, - virDomainCaps *domCaps) + virDomainCaps *domCaps, + unsigned int flags) { - virCPUDef *cpu =3D virQEMUCapsGetHostModel(qemuCaps, domCaps->virttype, - VIR_QEMU_CAPS_HOST_CPU_REPORT= ED); + virQEMUCapsHostCPUType cpuType =3D VIR_QEMU_CAPS_HOST_CPU_REPORTED; + virCPUDef *cpu; =20 - domCaps->cpu.hostModel =3D virCPUDefCopy(cpu); - domCaps->cpu.hostModel->addr =3D virQEMUCapsGetHostPhysAddr(qemuCaps, - domCaps->vir= ttype); + cpu =3D virCPUDefCopy(virQEMUCapsGetHostModel(qemuCaps, domCaps->virtt= ype, + cpuType)); + + cpu->addr =3D virQEMUCapsGetHostPhysAddr(qemuCaps, domCaps->virttype); + + if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEA= TURES) { + virQEMUCapsUpdateCPUDeprecatedFeatures(qemuCaps, domCaps->virttype, + cpu, VIR_CPU_FEATURE_DISABL= E); + } + + if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) + virCPUExpandFeatures(domCaps->arch, cpu); + + domCaps->cpu.hostModel =3D cpu; } =20 =20 @@ -6669,7 +6681,8 @@ virQEMUCapsFillDomainCPUCustom(virQEMUCaps *qemuCaps, static void virQEMUCapsFillDomainCPUCaps(virQEMUCaps *qemuCaps, virArch hostarch, - virDomainCaps *domCaps) + virDomainCaps *domCaps, + unsigned int flags) { if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, VIR_CPU_MODE_HOST_PASSTHROUGH, @@ -6686,7 +6699,7 @@ virQEMUCapsFillDomainCPUCaps(virQEMUCaps *qemuCaps, if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, VIR_CPU_MODE_HOST_MODEL, domCaps->machine)) { - virQEMUCapsFillDomainCPUHostModel(qemuCaps, domCaps); + virQEMUCapsFillDomainCPUHostModel(qemuCaps, domCaps, flags); } =20 if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttyp= e, @@ -7315,7 +7328,8 @@ virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg, virQEMUCaps *qemuCaps, virArch hostarch, virDomainCaps *domCaps, - bool privileged) + bool privileged, + unsigned int flags) { virDomainCapsOS *os =3D &domCaps->os; virDomainCapsDeviceDisk *disk =3D &domCaps->disk; @@ -7358,7 +7372,7 @@ virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg, firmwares, nfirmwares) < 0) return -1; =20 - virQEMUCapsFillDomainCPUCaps(qemuCaps, hostarch, domCaps); + virQEMUCapsFillDomainCPUCaps(qemuCaps, hostarch, domCaps, flags); virQEMUCapsFillDomainMemoryBackingCaps(qemuCaps, memoryBacking); virQEMUCapsFillDomainDeviceDiskCaps(qemuCaps, domCaps->machine, disk); virQEMUCapsFillDomainDeviceGraphicsCaps(cfg, qemuCaps, graphics); diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index c26e06104d..b26b5d3145 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -903,7 +903,8 @@ int virQEMUCapsFillDomainCaps(virQEMUDriverConfig *cfg, virQEMUCaps *qemuCaps, virArch hostarch, virDomainCaps *domCaps, - bool privileged); + bool privileged, + unsigned int flags); =20 void virQEMUCapsFillDomainMemoryBackingCaps(virQEMUCaps *qemuCaps, virDomainCapsMemoryBacking *me= moryBacking); diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 9c32310096..9b94733a38 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1753,7 +1753,8 @@ virQEMUDriverGetDomainCapabilities(virQEMUDriver *dri= ver, virQEMUCaps *qemuCaps, const char *machine, virArch arch, - virDomainVirtType virttype) + virDomainVirtType virttype, + unsigned int flags) { g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); g_autoptr(virDomainCaps) domCaps =3D NULL; @@ -1787,7 +1788,8 @@ virQEMUDriverGetDomainCapabilities(virQEMUDriver *dri= ver, qemuCaps, driver->hostarch, domCaps, - driver->privileged) < 0) + driver->privileged, + flags) < 0) return NULL; =20 return g_steal_pointer(&domCaps); diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index 511ab77f71..a2ca4ddbdb 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -383,7 +383,8 @@ virQEMUDriverGetDomainCapabilities(virQEMUDriver *drive= r, virQEMUCaps *qemuCaps, const char *machine, virArch arch, - virDomainVirtType virttype); + virDomainVirtType virttype, + unsigned int flags); =20 int qemuDriverAllocateID(virQEMUDriver *driver); virDomainXMLOption *virQEMUDriverCreateXMLConf(virQEMUDriver *driver, diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index bcafacfb60..c351ce40af 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -16982,21 +16982,10 @@ qemuConnectGetDomainCapabilities(virConnectPtr co= nn, =20 if (!(domCaps =3D virQEMUDriverGetDomainCapabilities(driver, qemuCaps, machine, - arch, virttype))) + arch, virttype, + flags))) return NULL; =20 - if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEA= TURES) { - virQEMUCapsUpdateCPUDeprecatedFeatures(qemuCaps, virttype, - domCaps->cpu.hostModel, - VIR_CPU_FEATURE_DISABLE); - } - - if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) { - virCPUDef *cpu =3D domCaps->cpu.hostModel; - if (cpu && virCPUExpandFeatures(arch, cpu) < 0) - return NULL; - } - return virDomainCapsFormat(domCaps); } =20 diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 5b2fc80f0a..f2248c2435 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -101,7 +101,7 @@ fillQemuCaps(virDomainCaps *domCaps, =20 if (virQEMUCapsFillDomainCaps(cfg, qemuCaps, domCaps->arch, domCaps, - false) < 0) + false, 0) < 0) return -1; =20 /* As of f05b6a918e28 we are expecting to see OVMF_CODE.fd file which --=20 2.54.0 From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780064856; cv=none; d=zohomail.com; s=zohoarc; b=cpqwgwDE/VmkYklD3d43y6YNJ0+jboVemDBF9ELA8D2sdJmmkI5hYmttPc77mXm1y030tZqBC3q8gkK9bsfkd/fSjCQHR6IRZE9DG9dTedHEVxJJcfW9hwQ2SJ3vqh93UenTM7fJliHJuDgl6+v4QnjAqy22Xg7kG2UNngl00VI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780064856; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=6+qGa3+bix9MamFuTR2y3sAlFN5x/BFQL8FJ0Z/eKQM=; b=UECOJtQ0dQerBIQUOlX9SECGMA5T53SCwtoRzhaQPsNR9g+00U4V7GeFFtgHw5M2Z8BaOVuE/LFnDLiwg0yoUuopLQ5njXDiG3+HmXG3mPsrMM7t2W0a8dRE4P5g1k0OvGYoLav18YdbTeMqLx3GEA6ZvocO6uGW6wh6wuTbwbI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 178006485674015.397332672332482; Fri, 29 May 2026 07:27:36 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B18AC41B81; Fri, 29 May 2026 10:27:35 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id B937441D51; Fri, 29 May 2026 10:15:32 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id D5D533F966; Fri, 29 May 2026 10:15:18 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id AA63941B16 for ; Fri, 29 May 2026 10:12:41 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-683-emdyTlOkMGqg99gKl5JWDg-1; Fri, 29 May 2026 10:12:36 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7BA4E180058F for ; Fri, 29 May 2026 14:12:35 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E40651800352 for ; Fri, 29 May 2026 14:12:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063961; h=from:from: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; bh=6+qGa3+bix9MamFuTR2y3sAlFN5x/BFQL8FJ0Z/eKQM=; b=QHPSWUF2XmTAJ2JhwWqx+soqS3p3wtcodW2iGv6szIZ5KxMMFDqQohathp90jVQ/LfAkr3 /mnPfV8C5u48PhPGV062dgdPHa2zx+vLzU/U5lCz9SNroisWxAjvjiMFlyBA6msqxJLnUz ubBTOZV2uRLurPCAoArQErq8p5ucO68= X-MC-Unique: emdyTlOkMGqg99gKl5JWDg-1 X-Mimecast-MFC-AGG-ID: emdyTlOkMGqg99gKl5JWDg_1780063955 To: devel@lists.libvirt.org Subject: [PATCH v2 04/16] qemu_capabilities: Always sort features in host-model CPU Date: Fri, 29 May 2026 16:12:09 +0200 Message-ID: <85496fa5de55ab3165ec39d4ea56186ff599b64a.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: -tpc-UAqCDB9QrlBo9SnOtQc2eFAxnZ0Whc081p0Vlg_1780063955 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: J47EQBER4LLLVR7N7ZERVVXFUKR36GMA X-Message-ID-Hash: J47EQBER4LLLVR7N7ZERVVXFUKR36GMA X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780064859185154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Expanding a CPU model always produces a sorted list of features so the features in host-model CPU capabilities were either sorted or not depending on flags passed to virConnectGetDomainCapabilities. Signed-off-by: Jiri Denemark --- Notes: Version 2: - new patch src/qemu/qemu_capabilities.c | 1 + .../qemu_10.0.0-q35.x86_64+amdsev.xml | 48 ++++---- .../domaincapsdata/qemu_10.0.0-q35.x86_64.xml | 50 ++++----- .../qemu_10.0.0-tcg.x86_64+amdsev.xml | 60 +++++----- .../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml | 60 +++++----- tests/domaincapsdata/qemu_10.0.0.s390x.xml | 94 ++++++++-------- .../qemu_10.0.0.x86_64+amdsev.xml | 48 ++++---- tests/domaincapsdata/qemu_10.0.0.x86_64.xml | 50 ++++----- .../qemu_10.1.0-q35.x86_64+inteltdx.xml | 56 ++++----- .../domaincapsdata/qemu_10.1.0-q35.x86_64.xml | 40 +++---- .../qemu_10.1.0-tcg.x86_64+inteltdx.xml | 66 +++++------ .../domaincapsdata/qemu_10.1.0-tcg.x86_64.xml | 66 +++++------ tests/domaincapsdata/qemu_10.1.0.s390x.xml | 106 +++++++++--------- .../qemu_10.1.0.x86_64+inteltdx.xml | 56 ++++----- tests/domaincapsdata/qemu_10.1.0.x86_64.xml | 40 +++---- .../domaincapsdata/qemu_10.2.0-q35.x86_64.xml | 24 ++-- .../qemu_10.2.0-tcg.x86_64+mshv.xml | 66 +++++------ .../domaincapsdata/qemu_10.2.0-tcg.x86_64.xml | 66 +++++------ tests/domaincapsdata/qemu_10.2.0.x86_64.xml | 24 ++-- .../qemu_11.0.0-q35.x86_64+sgx.xml | 24 ++-- .../domaincapsdata/qemu_11.0.0-q35.x86_64.xml | 24 ++-- .../qemu_11.0.0-tcg.x86_64+sgx.xml | 66 +++++------ .../domaincapsdata/qemu_11.0.0-tcg.x86_64.xml | 66 +++++------ tests/domaincapsdata/qemu_11.0.0.s390x.xml | 106 +++++++++--------- .../domaincapsdata/qemu_11.0.0.x86_64+sgx.xml | 24 ++-- tests/domaincapsdata/qemu_11.0.0.x86_64.xml | 24 ++-- .../qemu_7.2.0-hvf.x86_64+hvf.xml | 36 +++--- .../domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 36 +++--- .../qemu_7.2.0-tcg.x86_64+hvf.xml | 46 ++++---- .../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 46 ++++---- tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 36 +++--- .../domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 36 +++--- .../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 54 ++++----- tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 36 +++--- .../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 38 +++---- .../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 60 +++++----- tests/domaincapsdata/qemu_8.1.0.s390x.xml | 62 +++++----- tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 38 +++---- .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 40 +++---- .../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 58 +++++----- tests/domaincapsdata/qemu_8.2.0.s390x.xml | 62 +++++----- tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 40 +++---- .../domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 40 +++---- .../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 62 +++++----- tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 40 +++---- .../domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 48 ++++---- .../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 60 +++++----- tests/domaincapsdata/qemu_9.1.0.s390x.xml | 94 ++++++++-------- tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 48 ++++---- .../qemu_9.2.0-q35.x86_64+amdsev.xml | 48 ++++---- .../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 50 ++++----- .../qemu_9.2.0-tcg.x86_64+amdsev.xml | 60 +++++----- .../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 60 +++++----- tests/domaincapsdata/qemu_9.2.0.s390x.xml | 94 ++++++++-------- .../qemu_9.2.0.x86_64+amdsev.xml | 48 ++++---- tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 50 ++++----- 56 files changed, 1441 insertions(+), 1440 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 7b1c0b2372..12ff2525a5 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6656,6 +6656,7 @@ virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuCa= ps, if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) virCPUExpandFeatures(domCaps->arch, cpu); =20 + virCPUDefSortFeatures(cpu); domCaps->cpu.hostModel =3D cpu; } =20 diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml b/tests= /domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml index db891b6666..85eea3ddc3 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev.xml @@ -55,37 +55,37 @@ EPYC-Genoa AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + 486 diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_10.0.0-q35.x86_64.xml index c3d8f6e754..62673313b4 100644 --- a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64.xml @@ -55,37 +55,37 @@ EPYC-Rome AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml b/tests= /domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml index afc3f00495..b903529d64 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64+amdsev.xml @@ -46,39 +46,39 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_10.0.0-tcg.x86_64.xml index 81f08a8f79..c041abb09d 100644 --- a/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0-tcg.x86_64.xml @@ -46,39 +46,39 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.0.0.s390x.xml b/tests/domaincapsd= ata/qemu_10.0.0.s390x.xml index bb7ac562b7..a88669528c 100644 --- a/tests/domaincapsdata/qemu_10.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_10.0.0.s390x.xml @@ -42,61 +42,61 @@ gen16a-base - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml b/tests/dom= aincapsdata/qemu_10.0.0.x86_64+amdsev.xml index c1e1ceb591..a24bb329e7 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64+amdsev.xml @@ -52,37 +52,37 @@ EPYC-Genoa AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + 486 diff --git a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml b/tests/domaincaps= data/qemu_10.0.0.x86_64.xml index c5d88c5a35..53cfacb74e 100644 --- a/tests/domaincapsdata/qemu_10.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.0.0.x86_64.xml @@ -52,37 +52,37 @@ EPYC-Rome AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml b/tes= ts/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml index fac2de36a3..092d157661 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml @@ -55,42 +55,42 @@ GraniteRapids Intel - - - - - - - - - - + + - - - - + + + + - - + + - - - - - + + - + + + + + + + + + + + + + + + + - - - - - - + + 486 diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_10.1.0-q35.x86_64.xml index fd57e6140b..14beb4b11a 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml @@ -55,30 +55,30 @@ EPYC-Rome AMD - - - - - - - - - - - - - - + - - - - - + + + + - + + + + + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml b/tes= ts/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml index 07a43aea11..340b173d03 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml @@ -46,42 +46,42 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_10.1.0-tcg.x86_64.xml index 08087e7c6e..9426dfa974 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml @@ -46,42 +46,42 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.1.0.s390x.xml b/tests/domaincapsd= ata/qemu_10.1.0.s390x.xml index 21006dd5a9..3bb62be1ec 100644 --- a/tests/domaincapsdata/qemu_10.1.0.s390x.xml +++ b/tests/domaincapsdata/qemu_10.1.0.s390x.xml @@ -42,71 +42,71 @@ gen17a-base - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + - + + + - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml b/tests/d= omaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml index afc8277f84..c512f67b01 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml @@ -52,42 +52,42 @@ GraniteRapids Intel - - - - - - - - - - + + - - - - + + + + - - + + - - - - - + + - + + + + + + + + + + + + + + + + - - - - - - + + 486 diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml b/tests/domaincaps= data/qemu_10.1.0.x86_64.xml index 17a37b4b53..20e9601b23 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml @@ -52,30 +52,30 @@ EPYC-Rome AMD - - - - - - - - - - - - - - + - - - - - + + + + - + + + + + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_10.2.0-q35.x86_64.xml index 8873fcd4de..7a89f10f8d 100644 --- a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml @@ -55,22 +55,22 @@ EPYC-Turin AMD - - - - - - - - + + - - - + - + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64+mshv.xml b/tests/d= omaincapsdata/qemu_10.2.0-tcg.x86_64+mshv.xml index 86343810df..4df64e7377 100644 --- a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64+mshv.xml +++ b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64+mshv.xml @@ -46,42 +46,42 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_10.2.0-tcg.x86_64.xml index 45d9a2cea1..aa04840b1d 100644 --- a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml @@ -46,42 +46,42 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml b/tests/domaincaps= data/qemu_10.2.0.x86_64.xml index 8da8bf782d..81edcee149 100644 --- a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml @@ -52,22 +52,22 @@ EPYC-Turin AMD - - - - - - - - + + - - - + - + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx.xml b/tests/do= maincapsdata/qemu_11.0.0-q35.x86_64+sgx.xml index 1a10b79d09..b4a1291d2e 100644 --- a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx.xml +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx.xml @@ -55,23 +55,23 @@ EPYC-Turin AMD - - - - - - - - + + - - - + - + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_11.0.0-q35.x86_64.xml index 79ae075c3f..e529e0ccee 100644 --- a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64.xml @@ -55,23 +55,23 @@ EPYC-Turin AMD - - - - - - - - + + - - - + - + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_11.0.0-tcg.x86_64+sgx.xml b/tests/do= maincapsdata/qemu_11.0.0-tcg.x86_64+sgx.xml index b452206caa..b69a8a0d21 100644 --- a/tests/domaincapsdata/qemu_11.0.0-tcg.x86_64+sgx.xml +++ b/tests/domaincapsdata/qemu_11.0.0-tcg.x86_64+sgx.xml @@ -46,42 +46,42 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_11.0.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_11.0.0-tcg.x86_64.xml index c2b7dcc5b0..293d257ad5 100644 --- a/tests/domaincapsdata/qemu_11.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_11.0.0-tcg.x86_64.xml @@ -46,42 +46,42 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_11.0.0.s390x.xml b/tests/domaincapsd= ata/qemu_11.0.0.s390x.xml index 9496236af5..b317835b51 100644 --- a/tests/domaincapsdata/qemu_11.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_11.0.0.s390x.xml @@ -42,71 +42,71 @@ gen17a-base - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + - + + + - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + - + - + + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_11.0.0.x86_64+sgx.xml b/tests/domain= capsdata/qemu_11.0.0.x86_64+sgx.xml index 101362aa00..e51badf0e6 100644 --- a/tests/domaincapsdata/qemu_11.0.0.x86_64+sgx.xml +++ b/tests/domaincapsdata/qemu_11.0.0.x86_64+sgx.xml @@ -52,23 +52,23 @@ EPYC-Turin AMD - - - - - - - - + + - - - + - + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_11.0.0.x86_64.xml b/tests/domaincaps= data/qemu_11.0.0.x86_64.xml index 5474887dae..18e8b107d7 100644 --- a/tests/domaincapsdata/qemu_11.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_11.0.0.x86_64.xml @@ -52,23 +52,23 @@ EPYC-Turin AMD - - - - - - - - + + - - - + - + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml b/tests/dom= aincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml index f06572b7d7..0c39d5c8c0 100644 --- a/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml +++ b/tests/domaincapsdata/qemu_7.2.0-hvf.x86_64+hvf.xml @@ -52,30 +52,30 @@ EPYC-Rome AMD - - - - - - - - - - - + + + + - - + - - - + - - + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_7.2.0-q35.x86_64.xml index 408ed56c2f..8a84c50845 100644 --- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml @@ -55,30 +55,30 @@ EPYC-Rome AMD - - - - - - - - - - - + + + + - - + - - - + - - + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml b/tests/dom= aincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml index 8c385813f0..2cbba20a9f 100644 --- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml +++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml @@ -46,34 +46,34 @@ EPYC AMD - - - - - - - - - - - - - - + + + + + + + + + + + - - - + + + + + - - - - + + - - + + + + + 486 diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_7.2.0-tcg.x86_64.xml index 8c385813f0..2cbba20a9f 100644 --- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml @@ -46,34 +46,34 @@ EPYC AMD - - - - - - - - - - - - - - + + + + + + + + + + + - - - + + + + + - - - - + + - - + + + + + 486 diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_7.2.0.x86_64.xml index f15fc2ff21..845283acc3 100644 --- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml @@ -52,30 +52,30 @@ EPYC-Rome AMD - - - - - - - - - - - + + + + - - + - - - + - - + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_8.0.0-q35.x86_64.xml index 5bce758303..871e87f765 100644 --- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml @@ -55,30 +55,30 @@ EPYC-Rome AMD - - - - - - - - - - - + + + + - - + - - - + - - + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_8.0.0-tcg.x86_64.xml index 90fee27397..11a61e11e9 100644 --- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml @@ -46,38 +46,38 @@ EPYC AMD - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + - - - - + + - - + + + + + 486 diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.0.0.x86_64.xml index ccc712a2d3..ea409b3b94 100644 --- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml @@ -52,30 +52,30 @@ EPYC-Rome AMD - - - - - - - - - - - + + + + - - + - - - + - - + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_8.1.0-q35.x86_64.xml index 5314fd6cc8..73ff57638a 100644 --- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml @@ -55,31 +55,31 @@ EPYC-Rome AMD - - - - - - - - - - + + + + - - + + + - - - - - + - - + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_8.1.0-tcg.x86_64.xml index 9bb23f1cea..63846bf3b7 100644 --- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml @@ -46,39 +46,39 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_8.1.0.s390x.xml b/tests/domaincapsda= ta/qemu_8.1.0.s390x.xml index 05c5db9564..7971667460 100644 --- a/tests/domaincapsdata/qemu_8.1.0.s390x.xml +++ b/tests/domaincapsdata/qemu_8.1.0.s390x.xml @@ -42,44 +42,44 @@ gen15a-base - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.1.0.x86_64.xml index 2d3841c84d..8a2aaf496e 100644 --- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml @@ -52,31 +52,31 @@ EPYC-Rome AMD - - - - - - - - - - + + + + - - + + + - - - - - + - - + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_8.2.0-q35.x86_64.xml index e5b2ff08ae..b2752be989 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -55,32 +55,32 @@ EPYC-Rome AMD - - - - - - - - - - + + + + + - - + + + - - - - - + - - - + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_8.2.0-tcg.x86_64.xml index fa0d1b4c8a..e6bb5efecd 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml @@ -46,38 +46,38 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_8.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_8.2.0.s390x.xml index b557f55ded..195630a24e 100644 --- a/tests/domaincapsdata/qemu_8.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_8.2.0.s390x.xml @@ -42,44 +42,44 @@ gen15a-base - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.2.0.x86_64.xml index 241ac58b6d..25f3874c9e 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -52,32 +52,32 @@ EPYC-Rome AMD - - - - - - - - - - + + + + + - - + + + - - - - - + - - - + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_9.0.0-q35.x86_64.xml index e06b5b7e0a..823b462214 100644 --- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml @@ -55,32 +55,32 @@ EPYC-Rome AMD - - - - - - - - - - + + + + + - - + + + - - - - - + - - - + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_9.0.0-tcg.x86_64.xml index 4cd7024138..2614ec3882 100644 --- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml @@ -46,40 +46,40 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.0.0.x86_64.xml index 611eda247f..27755fa59e 100644 --- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml @@ -52,32 +52,32 @@ EPYC-Rome AMD - - - - - - - - - - + + + + + - - + + + - - - - - + - - - + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_9.1.0-q35.x86_64.xml index 9f241b4031..cda2c2b4ec 100644 --- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml @@ -55,36 +55,36 @@ EPYC-Rome AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + diff --git a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_9.1.0-tcg.x86_64.xml index 59280f40c9..7f30694530 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml @@ -46,39 +46,39 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_9.1.0.s390x.xml b/tests/domaincapsda= ta/qemu_9.1.0.s390x.xml index 408c018b1f..16f32f9465 100644 --- a/tests/domaincapsdata/qemu_9.1.0.s390x.xml +++ b/tests/domaincapsdata/qemu_9.1.0.s390x.xml @@ -42,61 +42,61 @@ gen16a-base - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.1.0.x86_64.xml index 336e8891f3..1cbb9f76df 100644 --- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml @@ -52,36 +52,36 @@ EPYC-Rome AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml b/tests/= domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml index 5f67243a48..84ffe5b18c 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml @@ -55,37 +55,37 @@ EPYC-Genoa AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + 486 diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_9.2.0-q35.x86_64.xml index ec854b6f38..853ea256be 100644 --- a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64.xml @@ -55,37 +55,37 @@ EPYC-Rome AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml b/tests/= domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml index 0966567de4..81f312379d 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml @@ -46,39 +46,39 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_9.2.0-tcg.x86_64.xml index 26826ffa08..5ca8ef77c5 100644 --- a/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0-tcg.x86_64.xml @@ -46,39 +46,39 @@ EPYC AMD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 diff --git a/tests/domaincapsdata/qemu_9.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_9.2.0.s390x.xml index f79d8cd643..d9bbac632e 100644 --- a/tests/domaincapsdata/qemu_9.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_9.2.0.s390x.xml @@ -42,61 +42,61 @@ gen16a-base - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - + - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gen15a diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml b/tests/doma= incapsdata/qemu_9.2.0.x86_64+amdsev.xml index c56683e9f1..e6482b6703 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml @@ -52,37 +52,37 @@ EPYC-Genoa AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + 486 diff --git a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.2.0.x86_64.xml index 9d9be7e764..3996bbf3f3 100644 --- a/tests/domaincapsdata/qemu_9.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.2.0.x86_64.xml @@ -52,37 +52,37 @@ EPYC-Rome AMD - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + --=20 2.54.0 From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780064447; cv=none; d=zohomail.com; s=zohoarc; b=BvEHkbJel23i7Z1z22CUcZDr5gXxpWMCMWgCFm68Hgkk4RDk0FVLz4olSzqBqLH/U/LbDFGnjV72jzIYybdQS5H1w1zHCnyE5s8Vo6gmGhTN4D3clbD/BFYkpYFQwNH63O/YmgqXb1konI6RlHRosz0noqTIZFcx1BGlx1r4xh8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780064447; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=bgEZxBOGKY//05R9sPcJQMWlxXb1UswBvqaA/X5U0nQ=; b=dnSRIhd4Gkh2aMfBYLzW8xNfMKZoKAuIYMh4A65mSgJJNwzj0p27Yv1IE9H5B8WG8cWfcdvb53xEFyNH/ATM0P7SfQ728rkHR9ynIURWG4hkJmTjyMy1baaW3ObWKPcd3aKYc1fZUBNUrEiruNsdqGIVrRhZ8zKEKJtDMn2GwiU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780064447501724.0243415025566; Fri, 29 May 2026 07:20:47 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id CCF62419E5; Fri, 29 May 2026 10:20:46 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 0C95A41992; Fri, 29 May 2026 10:15:00 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id D3A2241995; Fri, 29 May 2026 10:14:52 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 0A8E741AFB for ; Fri, 29 May 2026 10:12:40 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-689-t59Ci_41MPqCwd0xHZuxXg-1; Fri, 29 May 2026 10:12:38 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0D64B18002E3 for ; Fri, 29 May 2026 14:12:38 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 653E430001BB for ; Fri, 29 May 2026 14:12:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063960; h=from:from: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; bh=bgEZxBOGKY//05R9sPcJQMWlxXb1UswBvqaA/X5U0nQ=; b=VUhd7d4jyDXfdSlYeamnLS5gVAsQ/tcORbD/GBgpBPD8iKt7mDuZJbI7KMD11/gI64Ga6e KwBsO4ViJwDTB8cB5rDXLOnLRNoN5/bEaHGB1+GHGOe85XNqUocR+wmKKHizVaYcE8gvwW 6/zeCz+KIsT/iNgoAy31JnoR1Tb8n34= X-MC-Unique: t59Ci_41MPqCwd0xHZuxXg-1 X-Mimecast-MFC-AGG-ID: t59Ci_41MPqCwd0xHZuxXg_1780063958 To: devel@lists.libvirt.org Subject: [PATCH v2 05/16] qemu_capabilities: Use g_autoptr in virQEMUCapsInitHostCPUModel Date: Fri, 29 May 2026 16:12:10 +0200 Message-ID: <776103734d52d5569a76eaa3dd4bd5e25a2153db.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: hzJ_jgY1M1hRtdDaH8mRtFOvxPmGsZZvyqAaw6Yuf4s_1780063958 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: WNVCUFPRDTTYNOODALQ43GCOI7FACRRM X-Message-ID-Hash: WNVCUFPRDTTYNOODALQ43GCOI7FACRRM X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780064450078154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Signed-off-by: Jiri Denemark --- Notes: Version 2: - no change src/qemu/qemu_capabilities.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 12ff2525a5..0a676729b8 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4100,11 +4100,11 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, virArch hostArch, virDomainVirtType type) { - virCPUDef *cpu =3D NULL; - virCPUDef *cpuExpanded =3D NULL; - virCPUDef *migCPU =3D NULL; - virCPUDef *hostCPU =3D NULL; - virCPUDef *fullCPU =3D NULL; + g_autoptr(virCPUDef) cpu =3D NULL; + g_autoptr(virCPUDef) cpuExpanded =3D NULL; + g_autoptr(virCPUDef) migCPU =3D NULL; + g_autoptr(virCPUDef) hostCPU =3D NULL; + g_autoptr(virCPUDef) fullCPU =3D NULL; unsigned int physAddrSize =3D 0; size_t i; int rc; @@ -4178,19 +4178,15 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, if (virQEMUCapsTypeIsAccelerated(type)) virHostCPUGetPhysAddrSize(hostArch, &physAddrSize); =20 - virQEMUCapsSetHostModel(qemuCaps, type, physAddrSize, cpu, migCPU, ful= lCPU); + virQEMUCapsSetHostModel(qemuCaps, type, physAddrSize, + g_steal_pointer(&cpu), + g_steal_pointer(&migCPU), + g_steal_pointer(&fullCPU)); =20 - cleanup: - virCPUDefFree(cpuExpanded); - virCPUDefFree(hostCPU); return; =20 error: - virCPUDefFree(cpu); - virCPUDefFree(migCPU); - virCPUDefFree(fullCPU); virResetLastError(); - goto cleanup; } =20 =20 --=20 2.54.0 From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780064968; cv=none; d=zohomail.com; s=zohoarc; b=XU89auO18o2m36UXIiad0PMTY30+iwacPN98DDS/28b3AmPtiA4LAAX6Y0NXZi59bNwtnQyFpicaAmCkCuGIvycmY4A7OjDqs1iU9Rn4Yx5Miq1ygSxqO60zUe51jk477f/Kxrrm2sSmfD0xxV3eym/zTB8GoAjc1KcRlpBHk+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780064968; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=44hdD8jwgpNGmn1rI0UGfpCkqJK5tAdRpiU9cKL8Fu4=; b=kMFBu3gWdK6m7KzQNnp3LT6MxGmM7orEYfdtind+CqKn5NAAY5g3oQhZInCxoVOz9AkpHparqxA14kY+c0r7qj07eWgi8OctZh9W0eytb+zlLGottKP+kuoPGufoQncBz5A1UtsUlWJzym3KM7B3uxDSq7Wbz/DesVLMUAIgQ9c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780064968642833.98577174003; Fri, 29 May 2026 07:29:28 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 5A9703FCB5; Fri, 29 May 2026 10:29:27 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id E1D0241B32; Fri, 29 May 2026 10:15:54 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B5D273F97B; Fri, 29 May 2026 10:15:47 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 337F141B44 for ; Fri, 29 May 2026 10:12:43 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-292-AXm5M0YaMYGizpAQ5Hbx7Q-1; Fri, 29 May 2026 10:12:41 -0400 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 323CE1800451 for ; Fri, 29 May 2026 14:12:40 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8A37B19560A3 for ; Fri, 29 May 2026 14:12:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063962; h=from:from: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; bh=44hdD8jwgpNGmn1rI0UGfpCkqJK5tAdRpiU9cKL8Fu4=; b=cF1moudRDGrdWiZZQAYYZwzp05g+F31TAAdTVF+IydVG+xzuyOtHSVdWuvwJCb3BUAOOCm Rrx9Owvmhj1QST+pScwnJgctdHU5ew+oXMCFx+Iyn5AotD5Rj1lwYj8/IpPF3HbcXigP9b k1N3LTcjNCLckCW4TPYR3iyPRiPcPv4= X-MC-Unique: AXm5M0YaMYGizpAQ5Hbx7Q-1 X-Mimecast-MFC-AGG-ID: AXm5M0YaMYGizpAQ5Hbx7Q_1780063960 To: devel@lists.libvirt.org Subject: [PATCH v2 06/16] qemu_capabilities: Split conditions in virQEMUCapsInitHostCPUModel Date: Fri, 29 May 2026 16:12:11 +0200 Message-ID: <9ecb5b23ea840c33418502f3592e914f92b47069.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: K64plT4LeZLkoMiZeJRw9sPXGPGe0pmzNM3V_C48yR0_1780063960 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: OEI3U6A6UOLK5OBEEVWWEOKV3VSAAGQK X-Message-ID-Hash: OEI3U6A6UOLK5OBEEVWWEOKV3VSAAGQK X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780064970392158500 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Having 'else' after goto is useless. Signed-off-by: Jiri Denemark --- Notes: Version 2: - no change src/qemu/qemu_capabilities.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 0a676729b8..26b3e20d71 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4115,9 +4115,17 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, if (!(cpu =3D virQEMUCapsNewHostCPUModel())) goto error; =20 - if ((rc =3D virQEMUCapsInitCPUModel(qemuCaps, type, cpu, false)) < 0) { + if ((rc =3D virQEMUCapsInitCPUModel(qemuCaps, type, cpu, false)) < 0) goto error; - } else if (rc =3D=3D 1) { + + if (rc =3D=3D 2) { + VIR_DEBUG("QEMU does not provide CPU model for arch=3D%s virttype= =3D%s", + virArchToString(qemuCaps->arch), + virDomainVirtTypeToString(type)); + goto error; + } + + if (rc =3D=3D 1) { g_autoptr(virDomainCapsCPUModels) cpuModels =3D NULL; =20 VIR_DEBUG("No host CPU model info from QEMU; probing host CPU dire= ctly"); @@ -4128,11 +4136,6 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, =20 virCPUDefCopyModelFilter(cpu, hostCPU, true, virQEMUCapsCPUFilterF= eatures, &qemuCaps->arch); - } else if (rc =3D=3D 2) { - VIR_DEBUG("QEMU does not provide CPU model for arch=3D%s virttype= =3D%s", - virArchToString(qemuCaps->arch), - virDomainVirtTypeToString(type)); - goto error; } else if (virQEMUCapsTypeIsAccelerated(type) && virCPUGetHostIsSupported(qemuCaps->arch)) { if (!(fullCPU =3D virQEMUCapsProbeHostCPU(qemuCaps->arch, NULL))) @@ -4153,9 +4156,10 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, if (!(migCPU =3D virQEMUCapsNewHostCPUModel())) goto error; =20 - if ((rc =3D virQEMUCapsInitCPUModel(qemuCaps, type, migCPU, true)) < 0= ) { + if ((rc =3D virQEMUCapsInitCPUModel(qemuCaps, type, migCPU, true)) < 0) goto error; - } else if (rc =3D=3D 1) { + + if (rc =3D=3D 1) { VIR_DEBUG("CPU migratability not provided by QEMU"); =20 virCPUDefFree(migCPU); --=20 2.54.0 From nobody Sat May 30 15:28:32 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065066; cv=none; d=zohomail.com; s=zohoarc; b=MbJEfTJDnTAvRuZTXMEBUrY1Gi5IkaY47TomXaZOJH0jSyPmnc3e/euOvp/G8SY8U5rECnlWM/At/JwFFWZcn/F6YpnO5ZxFo1emukTE9QZ6+ZjettPnP7jHpn+vZt6UUGicVqMcDL1+9NMzTMyHeAR072MTLxjYxa5563Tahis= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065066; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=sKW0LLWbcOGFnvnxDINdecQEH3y5cM2Y52lgcarj6Ko=; b=bnh2FtX+KOYVThapXEn9xygsirrVDyV8tTaTervFj5qiMSys12G14KTsg9jQNitPImWkIZiv4IiioqIfD7gB8p+TKQYW/vr17tYMDff4jqngvjZygh5VY5ISkNv5vjeIGZQLxX0SE3GrHl4E23K2sNunl+exvUrJ2gtyxJdLQOY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065066610891.5456880326528; Fri, 29 May 2026 07:31:06 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 9DC6E41AB0; Fri, 29 May 2026 10:30:56 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 8803541AA9; Fri, 29 May 2026 10:16:49 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id AC09A41B22; Fri, 29 May 2026 10:16:40 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 8385041B97 for ; Fri, 29 May 2026 10:12:45 -0400 (EDT) Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-221-sGk_UIi5Nq6P31iHxU58zg-1; Fri, 29 May 2026 10:12:43 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BBBD21956068 for ; Fri, 29 May 2026 14:12:42 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 1E8671800465 for ; Fri, 29 May 2026 14:12:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063965; h=from:from: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; bh=sKW0LLWbcOGFnvnxDINdecQEH3y5cM2Y52lgcarj6Ko=; b=cHpkCVeXceEZAMMom9VN3izafRZnIgKMoXen0FnZoKGDzPnLUAn89dooEFdsTPiPCgxq7C ZyD/ZM9d0IYfDR11FVDIE9hzkkRmd8YfWq1O3RcP+7OCTDM40Pt4EFZAxcuR9Vh8g8lXh1 ONvnIlodti32vtWWuN3IJr/zpBGW8/A= X-MC-Unique: sGk_UIi5Nq6P31iHxU58zg-1 X-Mimecast-MFC-AGG-ID: sGk_UIi5Nq6P31iHxU58zg_1780063962 To: devel@lists.libvirt.org Subject: [PATCH v2 07/16] qemu_capabilities: Cache expanded CPU Date: Fri, 29 May 2026 16:12:12 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 2QuVJM_OmFhbyxrVHouu2WP_MS3pLhUmTUSCPlX6mRY_1780063962 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: XHRQAJ2POU7EDZTHU7WCCW6RMJF5RXCH X-Message-ID-Hash: XHRQAJ2POU7EDZTHU7WCCW6RMJF5RXCH X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065070765154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark When probing host model CPU we already expand it to get a list of all CPU features. Let's store the expanded CPU definition in virQEMUCaps and copy it to domain capabilities when requested by the VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES flag instead of expanding the CPU over and over on each request. Signed-off-by: Jiri Denemark --- Notes: Version 2: - includes misplaced hunks from 2/10 in v1 - supported field renamed as expanded - VIR_QEMU_CAPS_HOST_CPU_SUPPORTED enum value renamed as *_EXPANDED src/qemu/qemu_capabilities.c | 39 ++++++++++++++++++++++++++---------- src/qemu/qemu_capabilities.h | 3 +++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 26b3e20d71..54cf0d624b 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -795,6 +795,9 @@ struct _virQEMUCapsHostCPUData { unsigned int physAddrSize; /* Host CPU definition reported in domain capabilities. */ virCPUDef *reported; + /* Expanded host CPU definition with features that are implicitly enab= led + * by the selected CPU model. */ + virCPUDef *expanded; /* Migratable host CPU definition used for updating guest CPU. */ virCPUDef *migratable; /* CPU definition with features detected by libvirt using virCPUGetHost @@ -1975,6 +1978,9 @@ virQEMUCapsHostCPUDataCopy(virQEMUCapsHostCPUData *ds= t, if (src->reported) dst->reported =3D virCPUDefCopy(src->reported); =20 + if (src->expanded) + dst->expanded =3D virCPUDefCopy(src->expanded); + if (src->migratable) dst->migratable =3D virCPUDefCopy(src->migratable); =20 @@ -1988,6 +1994,7 @@ virQEMUCapsHostCPUDataClear(virQEMUCapsHostCPUData *c= puData) { qemuMonitorCPUModelInfoFree(cpuData->info); virCPUDefFree(cpuData->reported); + virCPUDefFree(cpuData->expanded); virCPUDefFree(cpuData->migratable); virCPUDefFree(cpuData->full); =20 @@ -2314,6 +2321,9 @@ virQEMUCapsGetHostModel(virQEMUCaps *qemuCaps, /* 'full' is non-NULL only if we have data from both QEMU and * virCPUGetHost */ return cpuData->full ? cpuData->full : cpuData->reported; + + case VIR_QEMU_CAPS_HOST_CPU_EXPANDED: + return cpuData->expanded; } =20 return NULL; @@ -2325,6 +2335,7 @@ virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps, virDomainVirtType type, unsigned int physAddrSize, virCPUDef *reported, + virCPUDef *expanded, virCPUDef *migratable, virCPUDef *full) { @@ -2333,6 +2344,7 @@ virQEMUCapsSetHostModel(virQEMUCaps *qemuCaps, cpuData =3D &virQEMUCapsGetAccel(qemuCaps, type)->hostCPU; cpuData->physAddrSize =3D physAddrSize; cpuData->reported =3D reported; + cpuData->expanded =3D expanded; cpuData->migratable =3D migratable; cpuData->full =3D full; } @@ -4136,16 +4148,18 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, =20 virCPUDefCopyModelFilter(cpu, hostCPU, true, virQEMUCapsCPUFilterF= eatures, &qemuCaps->arch); - } else if (virQEMUCapsTypeIsAccelerated(type) && - virCPUGetHostIsSupported(qemuCaps->arch)) { + } + + cpuExpanded =3D virCPUDefCopy(cpu); + if (virCPUExpandFeatures(qemuCaps->arch, cpuExpanded) < 0) + goto error; + + if (rc =3D=3D 0 && + virQEMUCapsTypeIsAccelerated(type) && + virCPUGetHostIsSupported(qemuCaps->arch)) { if (!(fullCPU =3D virQEMUCapsProbeHostCPU(qemuCaps->arch, NULL))) goto error; =20 - cpuExpanded =3D virCPUDefCopy(cpu); - - if (virCPUExpandFeatures(qemuCaps->arch, cpuExpanded) < 0) - goto error; - for (i =3D 0; i < cpuExpanded->nfeatures; i++) { if (cpuExpanded->features[i].policy =3D=3D VIR_CPU_FEATURE_REQ= UIRE) virCPUDefUpdateFeature(fullCPU, cpuExpanded->features[i].n= ame, @@ -4184,6 +4198,7 @@ virQEMUCapsInitHostCPUModel(virQEMUCaps *qemuCaps, =20 virQEMUCapsSetHostModel(qemuCaps, type, physAddrSize, g_steal_pointer(&cpu), + g_steal_pointer(&cpuExpanded), g_steal_pointer(&migCPU), g_steal_pointer(&fullCPU)); =20 @@ -6640,9 +6655,14 @@ virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuC= aps, virDomainCaps *domCaps, unsigned int flags) { - virQEMUCapsHostCPUType cpuType =3D VIR_QEMU_CAPS_HOST_CPU_REPORTED; + virQEMUCapsHostCPUType cpuType; virCPUDef *cpu; =20 + if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) + cpuType =3D VIR_QEMU_CAPS_HOST_CPU_EXPANDED; + else + cpuType =3D VIR_QEMU_CAPS_HOST_CPU_REPORTED; + cpu =3D virCPUDefCopy(virQEMUCapsGetHostModel(qemuCaps, domCaps->virtt= ype, cpuType)); =20 @@ -6653,9 +6673,6 @@ virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuCa= ps, cpu, VIR_CPU_FEATURE_DISABL= E); } =20 - if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) - virCPUExpandFeatures(domCaps->arch, cpu); - virCPUDefSortFeatures(cpu); domCaps->cpu.hostModel =3D cpu; } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index b26b5d3145..b027d37bf3 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -795,6 +795,9 @@ typedef enum { * combined with features reported by QEMU. This is used for backward * compatible comparison between a guest CPU and a host CPU. */ VIR_QEMU_CAPS_HOST_CPU_FULL, + /* Expanded host CPU definition with features that are implicitly enab= led + * by the selected CPU model. */ + VIR_QEMU_CAPS_HOST_CPU_EXPANDED, } virQEMUCapsHostCPUType; =20 virCPUDef *virQEMUCapsGetHostModel(virQEMUCaps *qemuCaps, --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065050; cv=none; d=zohomail.com; s=zohoarc; b=gSehxeDSPHSuINeTlOrsIMIBGWn17n+5BOYXNzEXDVBvJLzypY6m8Tfaw9M4pp4bp+ThIBOIzwQV+JzPMs6aksWkzA7wgLPwwEmj2nmhpQ20ySLtc5SwFKAjUv5XId58EF036Qt13jHefYkJgX63Onz+ytw+eaXSgqL9wow0tOE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065050; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=PBXzsTud7z33n1M3X9SppYz5jVQCz/9miogU4+D45Z8=; b=azI3u35QFio7tda26vaxTSkceX+LIwUSbSPykPjR+6l36YFkBWHObnhWW3DmFuZJ1CpJX3fT+RXvOyxcTfYZ76ZUYXb4VInlHMXEtF/xmPqIbQrDYwZK5L9Jk2CVQ2xj+zufBZjn2/+f+qXhBzPJ1r4reJV/HLZFkBvdACZ1iDg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065050219760.8199698019191; Fri, 29 May 2026 07:30:50 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 5362E41CB5; Fri, 29 May 2026 10:30:32 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 0D6AF41841; Fri, 29 May 2026 10:17:48 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 264D14199B; Fri, 29 May 2026 10:17:22 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id AE58F41965 for ; Fri, 29 May 2026 10:12:57 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-388-Q-PEQrjhPWm9lR4zr3UrQg-1; Fri, 29 May 2026 10:12:47 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 918F0180035D for ; Fri, 29 May 2026 14:12:46 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 756F5180056E for ; Fri, 29 May 2026 14:12:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063977; h=from:from: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; bh=PBXzsTud7z33n1M3X9SppYz5jVQCz/9miogU4+D45Z8=; b=V/FY1bBBPZuBCdG2rCk3HjciHsUdJXPko/TeNxt3kasCr7u4mnj1PKISUmr7k22lvMYl1k Uq5fD7Elazdg+WhU2RQRI28U/HS+LROYUbY+rQawgkaW7L+uMgLHzJDDSYKjax9udXKK3+ EZ63nNpMZqK5dJncd1yz4tytxhp/+cQ= X-MC-Unique: Q-PEQrjhPWm9lR4zr3UrQg-1 X-Mimecast-MFC-AGG-ID: Q-PEQrjhPWm9lR4zr3UrQg_1780063966 To: devel@lists.libvirt.org Subject: [PATCH v2 08/16] domaincapstest: Test EXPAND_CPU_FEATURES flag Date: Fri, 29 May 2026 16:12:13 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: wWYMNtMrANcdetWFfM2yk5tBhkFh6LwyCW8Xyn-vh6w_1780063966 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: MEZZ4CDG5LJCQ42DICOEDH4BQWFGSBIS X-Message-ID-Hash: MEZZ4CDG5LJCQ42DICOEDH4BQWFGSBIS X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065053672158500 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Signed-off-by: Jiri Denemark --- Notes: Version 2: - new patch ...qemu_10.0.0-q35.x86_64+amdsev-expanded.xml | 1123 ++++++++ .../qemu_10.0.0-q35.x86_64-expanded.xml | 1979 ++++++++++++++ ...mu_10.1.0-q35.x86_64+inteltdx-expanded.xml | 1250 +++++++++ .../qemu_10.1.0-q35.x86_64-expanded.xml | 2328 +++++++++++++++++ .../qemu_10.2.0-q35.x86_64+mshv-expanded.xml | 237 ++ .../qemu_10.2.0-q35.x86_64-expanded.xml | 1483 +++++++++++ .../qemu_11.0.0-q35.x86_64+sgx-expanded.xml | 1865 +++++++++++++ .../qemu_11.0.0-q35.x86_64-expanded.xml | 1856 +++++++++++++ .../qemu_7.2.0-q35.x86_64-expanded.xml | 1257 +++++++++ .../qemu_8.0.0-q35.x86_64-expanded.xml | 1366 ++++++++++ .../qemu_8.1.0-q35.x86_64-expanded.xml | 1624 ++++++++++++ .../qemu_8.2.0-q35.x86_64-expanded.xml | 1626 ++++++++++++ .../qemu_9.0.0-q35.x86_64-expanded.xml | 1627 ++++++++++++ .../qemu_9.1.0-q35.x86_64-expanded.xml | 1763 +++++++++++++ .../qemu_9.2.0-q35.x86_64+amdsev-expanded.xml | 1003 +++++++ .../qemu_9.2.0-q35.x86_64-expanded.xml | 1821 +++++++++++++ tests/domaincapstest.c | 48 +- 17 files changed, 24241 insertions(+), 15 deletions(-) create mode 100644 tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-expa= nded.xml create mode 100644 tests/domaincapsdata/qemu_10.0.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-ex= panded.xml create mode 100644 tests/domaincapsdata/qemu_10.1.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-expand= ed.xml create mode 100644 tests/domaincapsdata/qemu_10.2.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-expande= d.xml create mode 100644 tests/domaincapsdata/qemu_11.0.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_7.2.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_8.0.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_8.1.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_8.2.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_9.0.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_9.1.0-q35.x86_64-expanded.xml create mode 100644 tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-expan= ded.xml create mode 100644 tests/domaincapsdata/qemu_9.2.0-q35.x86_64-expanded.xml diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-expanded.xm= l b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-expanded.xml new file mode 100644 index 0000000000..52b42e7b73 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-expanded.xml @@ -0,0 +1,1123 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Genoa + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + Bro= adwell-IBRS + + + + + Br= oadwell-noTSX + Br= oadwell-noTSX-IBRS + Broadwell-v1 + + + + + Broadwell-v2 + Broadwell-v3 + + + + + Broadwell-v4 + Cascadelake-Server + + + + + Cascadelake-Server-noTSX + + + + Cascadelake-Server-v1 + + + + + Cascadelake-Server-v2 + + + + + + Cascadelake-Server-v3 + + + + Cascadelake-Server-v4 + + + + Cascadelake-Server-v5 + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + Cooperlake-v1 + + + + + + + Cooperlake-v2 + + + + + + + Den= verton + + + + Denverton-v1 + + + + Denverton-v2 + Denverton-v3 + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPY= C-Genoa + EPYC-Genoa-v1 + EPYC-IBPB= + EPY= C-Milan + EPYC-Milan-v1 + EPYC-Milan-v2 + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + EPYC-Rome-v3 + EPYC-Rome-v4 + EPYC-v1 + EPYC-v2 + EPYC-v3 + EPYC-v4 + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + Haswe= ll-IBRS + + + + + Hasw= ell-noTSX + Hasw= ell-noTSX-IBRS + Haswell-v1 + + + + + Haswell-v2 + Haswell-v3 + + + + + Haswell-v4 + Icelake-Server + + + + + Icelake-Server-noTSX + Icelake-Server-v1 + + + + + Icelake-Server-v2 + Icelake-Server-v3 + + + + + Icelake-Server-v4 + + + + + Icelake-Server-v5 + + + + + Icelake-Server-v6 + + + + + Icelake-Server-v7 + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + KnightsMill-v1 + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + Skylake-Client-IBRS + + + + + Skylake-Client-noTSX-IBRS + Skylake-Client-v1 + + + + + Skylake-Client-v2 + + + + + Skylake-Client-v3 + Skylake-Client-v4 + Skylake-Server + + + + + Skylake-Server-IBRS + + + + + Skylake-Server-noTSX-IBRS + Skylake-Server-v1 + + + + + Skylake-Server-v2 + + + + + Skylake-Server-v3 + Skylake-Server-v4 + Skylake-Server-v5 + Sno= wridge + + + + + + + + + Snowridge-v1 + + + + + + + + + Snowridge-v2 + + + + + + + + Snowridge-v3 + + + + + + + + Snowridge-v4 + + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + 51 + 1 + 59 + 450 + BlAwmcr4Ruya3YvEGe2EBxuWjMAfIYolslNNM92RsIKxLkWDDRqivqSBOD+q= QRCYS9joBYSHMD1g+rmjY+MmVw=3D=3D + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + sev + sev-snp + + + + diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64-expanded.xml b/tes= ts/domaincapsdata/qemu_10.0.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..94793d45c4 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64-expanded.xml @@ -0,0 +1,1979 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + YongFeng + + + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-expanded.= xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-expanded.xml new file mode 100644 index 0000000000..adfcb256de --- /dev/null +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-expanded.xml @@ -0,0 +1,1250 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + GraniteRapids + Intel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Br= oadwell + Br= oadwell-IBRS + Br= oadwell-noTSX + Br= oadwell-noTSX-IBRS + Broadwell-v1 + Broadwell-v2 + Broadwell-v3 + Broadwell-v4 + Cascadelake-Server + Cascadelake-Server-noTSX + Cascadelake-Server-v1 + Cascadelake-Server-v2 + Cascadelake-Server-v3 + Cascadelake-Server-v4 + Cascadelake-Server-v5 + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + C= ooperlake + Cooperlake-v1 + Cooperlake-v2 + Den= verton + + + + Denverton-v1 + + + + Denverton-v2 + Denverton-v3 + Dhyana= + + + + + + + + + Dhyana-v1 + + + + + + + + + Dhyana-v2 + + + + + + + + + EPYC + + + + + + + + + EPYC= -Genoa + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + EPYC-Genoa-v2 + + + + + + + + + + + + + + + + + + + + EPYC-IBPB<= /model> + + + + + + + + + EPYC= -Milan + + + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + + + EPYC-Milan-v3 + + + + + + + + + + + + + + + + + EPYC-= Rome + + + + + + + + + + + + EPYC-Rome-v1 + + + + + + + + + + + + EPYC-Rome-v2 + + + + + + + + + + + + EPYC-Rome-v3 + + + + + + + + + + + + EPYC-Rome-v4 + + + + + + + + + + + + EPYC-Rome-v5 + + + + + + + + + + + + EPYC= -Turin + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Turin-v1 + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-v1 + + + + + + + + + EPYC-v2 + + + + + + + + + EPYC-v3 + + + + + + + + + + + + EPYC-v4 + + + + + + + + + + + + EPYC-v5 + + + + + + + + + + + + GraniteRapids + + + + + + + + GraniteRapids-v1 + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + Hasw= ell + Hasw= ell-IBRS + Hasw= ell-noTSX + Hasw= ell-noTSX-IBRS + Haswell-v1 + Haswell-v2 + Haswell-v3 + Haswell-v4 + Icelake-Server + Icelake-Server-noTSX + Icelake-Server-v1 + Icelake-Server-v2 + Icelake-Server-v3 + Icelake-Server-v4 + Icelake-Server-v5 + Icelake-Server-v6 + Icelake-Server-v7 + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + KnightsMill-v1 + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opte= ron_G3 + + + + + Opteron_G3-v1 + + + + + Opte= ron_G4 + + + + + + + Opteron_G4-v1 + + + + + + + Opte= ron_G5 + + + + + + + + Opteron_G5-v1 + + + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + SapphireRapids-v1 + SapphireRapids-v2 + + + + + + SapphireRapids-v3 + + + + + + SapphireRapids-v4 + + + + + + = SierraForest + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + Skylake-Client + Skylake-Client-IBRS + Skylake-Client-noTSX-IBRS + Skylake-Client-v1 + Skylake-Client-v2 + Skylake-Client-v3 + Skylake-Client-v4 + Skylake-Server + Skylake-Server-IBRS + Skylake-Server-noTSX-IBRS + Skylake-Server-v1 + Skylake-Server-v2 + Skylake-Server-v3 + Skylake-Server-v4 + Skylake-Server-v5 + Sno= wridge + + + + + + Snowridge-v1 + + + + + + Snowridge-v2 + + + + + Snowridge-v3 + + + + + Snowridge-v4 + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + athlon + + + + + + athlon-v1 + + + + + + cor= e2duo + core2duo-v1 + core= duo + coreduo-v1 + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + n270-v1 + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + + + + phenom-v1 + + + + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + vnc + rdp + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + + pty + unix + + + + + virtio + + + qemu + + + builtin + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + dbus + + + + + + + + + + + + + + + + yes + yes + yes + 500732 + +
+
+
+
+ + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + evmcs + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-expanded.xml b/tes= ts/domaincapsdata/qemu_10.1.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..2084a7274b --- /dev/null +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-expanded.xml @@ -0,0 +1,2328 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + + Denverton-v1 + + + + + + + Denverton-v2 + + + + + + Denverton-v3 + + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-Milan-v3 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Turin-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + YongFeng + + + + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-expanded.xml = b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-expanded.xml new file mode 100644 index 0000000000..885108ac70 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-expanded.xml @@ -0,0 +1,237 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.2 + x86_64 + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + vnc + rdp + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + dbus + + + + + + + + + + + + + + + + + + spinlocks + vendor_id + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-expanded.xml b/tes= ts/domaincapsdata/qemu_10.2.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..ddfeed710d --- /dev/null +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-expanded.xml @@ -0,0 +1,1483 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Turin + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + Bro= adwell-IBRS + + + + + + + Bro= adwell-noTSX + + + + + Bro= adwell-noTSX-IBRS + + + + + Broadwell-v1 + + + + + + + Broadwell-v2 + + + + + Broadwell-v3 + + + + + + + Broadwell-v4 + + + + + Cascadelake-Server + + + + + + + Cascadelake-Server-noTSX + + + + + + Cascadelake-Server-v1 + + + + + + + Cascadelake-Server-v2 + + + + + + + + Cascadelake-Server-v3 + + + + + + Cascadelake-Server-v4 + + + + + + Cascadelake-Server-v5 + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + Cooperlake-v1 + + + + + + + + + Cooperlake-v2 + + + + + + + + + Den= verton + + + + + Denverton-v1 + + + + + Denverton-v2 + + + + Denverton-v3 + + + + Dhyana= + + + + Dhyana-v1 + + + + Dhyana-v2 + + + + EPYC + + + + EPYC= -Genoa + + + + + + EPYC-Genoa-v1 + + + + + + EPYC-Genoa-v2 + + + + + + EPYC-IBPB<= /model> + + + + EPYC= -Milan + + + + + EPYC-Milan-v1 + + + + + EPYC-Milan-v2 + + + + + EPYC-Milan-v3 + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + EPYC-Rome-v3 + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + EPYC-Turin-v1 + + + + + + EPYC-v1 + + + + EPYC-v2 + + + + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + Haswe= ll-IBRS + + + + + + Haswe= ll-noTSX + + + + Haswe= ll-noTSX-IBRS + + + + Haswell-v1 + + + + + + Haswell-v2 + + + + Haswell-v3 + + + + + + Haswell-v4 + + + + Icelake-Server + + + + + + + + Icelake-Server-noTSX + + + + + + Icelake-Server-v1 + + + + + + + + Icelake-Server-v2 + + + + + + Icelake-Server-v3 + + + + + + + + Icelake-Server-v4 + + + + + + + + Icelake-Server-v5 + + + + + + + + Icelake-Server-v6 + + + + + + + + Icelake-Server-v7 + + + + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + + KnightsMill-v1 + + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + Skylake-Client-IBRS + + + + + + + Skylake-Client-noTSX-IBRS + + + + + Skylake-Client-v1 + + + + + + + Skylake-Client-v2 + + + + + + + Skylake-Client-v3 + + + + + Skylake-Client-v4 + + + + + Skylake-Server + + + + + + + Skylake-Server-IBRS + + + + + + + Skylake-Server-noTSX-IBRS + + + + + Skylake-Server-v1 + + + + + + + Skylake-Server-v2 + + + + + + + Skylake-Server-v3 + + + + + Skylake-Server-v4 + + + + + Skylake-Server-v5 + + + + + Sno= wridge + + + + + + + + Snowridge-v1 + + + + + + + + Snowridge-v2 + + + + + + + Snowridge-v3 + + + + + + + Snowridge-v4 + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-expanded.xml b= /tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-expanded.xml new file mode 100644 index 0000000000..1438994bd4 --- /dev/null +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-expanded.xml @@ -0,0 +1,1865 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-11.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Turin + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + Bro= adwell-IBRS + + + + + + + Bro= adwell-noTSX + + + + + Bro= adwell-noTSX-IBRS + + + + + Broadwell-v1 + + + + + + + Broadwell-v2 + + + + + Broadwell-v3 + + + + + + + Broadwell-v4 + + + + + Cascadelake-Server + + + + + + + Cascadelake-Server-noTSX + + + + + + Cascadelake-Server-v1 + + + + + + + Cascadelake-Server-v2 + + + + + + + + Cascadelake-Server-v3 + + + + + + Cascadelake-Server-v4 + + + + + + Cascadelake-Server-v5 + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + Cooperlake-v1 + + + + + + + + + Cooperlake-v2 + + + + + + + + + Den= verton + + + + + Denverton-v1 + + + + + Denverton-v2 + + + + Denverton-v3 + + + + Dhyana= + + + + Dhyana-v1 + + + + Dhyana-v2 + + + + DiamondRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DiamondRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC + + + + EPYC= -Genoa + + + + + + EPYC-Genoa-v1 + + + + + + EPYC-Genoa-v2 + + + + + + EPYC-IBPB<= /model> + + + + EPYC= -Milan + + + + + EPYC-Milan-v1 + + + + + EPYC-Milan-v2 + + + + + EPYC-Milan-v3 + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + EPYC-Rome-v3 + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + EPYC-Turin-v1 + + + + + + EPYC-v1 + + + + EPYC-v2 + + + + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + Haswe= ll-IBRS + + + + + + Haswe= ll-noTSX + + + + Haswe= ll-noTSX-IBRS + + + + Haswell-v1 + + + + + + Haswell-v2 + + + + Haswell-v3 + + + + + + Haswell-v4 + + + + Icelake-Server + + + + + + + + Icelake-Server-noTSX + + + + + + Icelake-Server-v1 + + + + + + + + Icelake-Server-v2 + + + + + + Icelake-Server-v3 + + + + + + + + Icelake-Server-v4 + + + + + + + + Icelake-Server-v5 + + + + + + + + Icelake-Server-v6 + + + + + + + + Icelake-Server-v7 + + + + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + + KnightsMill-v1 + + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + Skylake-Client-IBRS + + + + + + + Skylake-Client-noTSX-IBRS + + + + + Skylake-Client-v1 + + + + + + + Skylake-Client-v2 + + + + + + + Skylake-Client-v3 + + + + + Skylake-Client-v4 + + + + + Skylake-Server + + + + + + + Skylake-Server-IBRS + + + + + + + Skylake-Server-noTSX-IBRS + + + + + Skylake-Server-v1 + + + + + + + Skylake-Server-v2 + + + + + + + Skylake-Server-v3 + + + + + Skylake-Server-v4 + + + + + Skylake-Server-v5 + + + + + Sno= wridge + + + + + + + + Snowridge-v1 + + + + + + + + Snowridge-v2 + + + + + + + Snowridge-v3 + + + + + + + Snowridge-v4 + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + no + yes + no + 524288 + +
+
+ + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-expanded.xml b/tes= ts/domaincapsdata/qemu_11.0.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..b6cd9f9ef6 --- /dev/null +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-expanded.xml @@ -0,0 +1,1856 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-11.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Turin + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + Bro= adwell-IBRS + + + + + + + Bro= adwell-noTSX + + + + + Bro= adwell-noTSX-IBRS + + + + + Broadwell-v1 + + + + + + + Broadwell-v2 + + + + + Broadwell-v3 + + + + + + + Broadwell-v4 + + + + + Cascadelake-Server + + + + + + + Cascadelake-Server-noTSX + + + + + + Cascadelake-Server-v1 + + + + + + + Cascadelake-Server-v2 + + + + + + + + Cascadelake-Server-v3 + + + + + + Cascadelake-Server-v4 + + + + + + Cascadelake-Server-v5 + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + Cooperlake-v1 + + + + + + + + + Cooperlake-v2 + + + + + + + + + Den= verton + + + + + Denverton-v1 + + + + + Denverton-v2 + + + + Denverton-v3 + + + + Dhyana= + + + + Dhyana-v1 + + + + Dhyana-v2 + + + + DiamondRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DiamondRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC + + + + EPYC= -Genoa + + + + + + EPYC-Genoa-v1 + + + + + + EPYC-Genoa-v2 + + + + + + EPYC-IBPB<= /model> + + + + EPYC= -Milan + + + + + EPYC-Milan-v1 + + + + + EPYC-Milan-v2 + + + + + EPYC-Milan-v3 + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + EPYC-Rome-v3 + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + EPYC-Turin-v1 + + + + + + EPYC-v1 + + + + EPYC-v2 + + + + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + Haswe= ll-IBRS + + + + + + Haswe= ll-noTSX + + + + Haswe= ll-noTSX-IBRS + + + + Haswell-v1 + + + + + + Haswell-v2 + + + + Haswell-v3 + + + + + + Haswell-v4 + + + + Icelake-Server + + + + + + + + Icelake-Server-noTSX + + + + + + Icelake-Server-v1 + + + + + + + + Icelake-Server-v2 + + + + + + Icelake-Server-v3 + + + + + + + + Icelake-Server-v4 + + + + + + + + Icelake-Server-v5 + + + + + + + + Icelake-Server-v6 + + + + + + + + Icelake-Server-v7 + + + + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + + KnightsMill-v1 + + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + Skylake-Client-IBRS + + + + + + + Skylake-Client-noTSX-IBRS + + + + + Skylake-Client-v1 + + + + + + + Skylake-Client-v2 + + + + + + + Skylake-Client-v3 + + + + + Skylake-Client-v4 + + + + + Skylake-Server + + + + + + + Skylake-Server-IBRS + + + + + + + Skylake-Server-noTSX-IBRS + + + + + Skylake-Server-v1 + + + + + + + Skylake-Server-v2 + + + + + + + Skylake-Server-v3 + + + + + Skylake-Server-v4 + + + + + Skylake-Server-v5 + + + + + Sno= wridge + + + + + + + + Snowridge-v1 + + + + + + + + Snowridge-v2 + + + + + + + Snowridge-v3 + + + + + + + Snowridge-v4 + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_7.2.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..cca435c7d3 --- /dev/null +++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64-expanded.xml @@ -0,0 +1,1257 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-7.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + Snowridge-v4 + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_8.0.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..ecfb035f30 --- /dev/null +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64-expanded.xml @@ -0,0 +1,1366 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-8.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + Snowridge-v4 + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + off + off + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_8.1.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..e5b89bdc55 --- /dev/null +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64-expanded.xml @@ -0,0 +1,1624 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-8.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_8.2.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..d157427e3d --- /dev/null +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64-expanded.xml @@ -0,0 +1,1626 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-8.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_9.0.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..11090568f4 --- /dev/null +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64-expanded.xml @@ -0,0 +1,1627 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_9.1.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..38d07a9c50 --- /dev/null +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64-expanded.xml @@ -0,0 +1,1763 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-expanded.xml= b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-expanded.xml new file mode 100644 index 0000000000..56341963cc --- /dev/null +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-expanded.xml @@ -0,0 +1,1003 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Genoa + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + Bro= adwell-IBRS + + + + + Br= oadwell-noTSX + Br= oadwell-noTSX-IBRS + Broadwell-v1 + + + + + Broadwell-v2 + Broadwell-v3 + + + + + Broadwell-v4 + Cascadelake-Server + + + + + Cascadelake-Server-noTSX + + + + Cascadelake-Server-v1 + + + + + Cascadelake-Server-v2 + + + + + + Cascadelake-Server-v3 + + + + Cascadelake-Server-v4 + + + + Cascadelake-Server-v5 + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + Cooperlake-v1 + + + + + + + Cooperlake-v2 + + + + + + + Den= verton + + + + Denverton-v1 + + + + Denverton-v2 + Denverton-v3 + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPY= C-Genoa + EPYC-Genoa-v1 + EPYC-IBPB= + EPY= C-Milan + EPYC-Milan-v1 + EPYC-Milan-v2 + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + EPYC-Rome-v3 + EPYC-Rome-v4 + EPYC-v1 + EPYC-v2 + EPYC-v3 + EPYC-v4 + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + Haswe= ll-IBRS + + + + + Hasw= ell-noTSX + Hasw= ell-noTSX-IBRS + Haswell-v1 + + + + + Haswell-v2 + Haswell-v3 + + + + + Haswell-v4 + Icelake-Server + + + + + Icelake-Server-noTSX + Icelake-Server-v1 + + + + + Icelake-Server-v2 + Icelake-Server-v3 + + + + + Icelake-Server-v4 + + + + + Icelake-Server-v5 + + + + + Icelake-Server-v6 + + + + + Icelake-Server-v7 + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + KnightsMill-v1 + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + Skylake-Client + + + + + Skylake-Client-IBRS + + + + + Skylake-Client-noTSX-IBRS + Skylake-Client-v1 + + + + + Skylake-Client-v2 + + + + + Skylake-Client-v3 + Skylake-Client-v4 + Skylake-Server + + + + + Skylake-Server-IBRS + + + + + Skylake-Server-noTSX-IBRS + Skylake-Server-v1 + + + + + Skylake-Server-v2 + + + + + Skylake-Server-v3 + Skylake-Server-v4 + Skylake-Server-v5 + Sno= wridge + + + + + + + + + Snowridge-v1 + + + + + + + + + Snowridge-v2 + + + + + + + + Snowridge-v3 + + + + + + + + Snowridge-v4 + + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + 51 + 1 + 59 + 450 + BlAwmcr4Ruya3YvEGe2EBxuWjMAfIYolslNNM92RsIKxLkWDDRqivqSBOD+q= QRCYS9joBYSHMD1g+rmjY+MmVw=3D=3D + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + sev + sev-snp + + + + diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64-expanded.xml b/test= s/domaincapsdata/qemu_9.2.0-q35.x86_64-expanded.xml new file mode 100644 index 0000000000..722b466e6d --- /dev/null +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64-expanded.xml @@ -0,0 +1,1821 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index f2248c2435..9bbba6e89c 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -72,7 +72,8 @@ fillQemuCaps(virDomainCaps *domCaps, const char *arch, const char *variant, const char *machine, - virQEMUDriverConfig *cfg) + virQEMUDriverConfig *cfg, + unsigned int flags) { g_autofree char *path =3D NULL; g_autoptr(virQEMUCaps) qemuCaps =3D NULL; @@ -101,7 +102,7 @@ fillQemuCaps(virDomainCaps *domCaps, =20 if (virQEMUCapsFillDomainCaps(cfg, qemuCaps, domCaps->arch, domCaps, - false, 0) < 0) + false, flags) < 0) return -1; =20 /* As of f05b6a918e28 we are expecting to see OVMF_CODE.fd file which @@ -176,6 +177,7 @@ struct testData { const char *arch; const char *variant; virDomainVirtType type; + unsigned int flags; enum testCapsType capsType; const char *capsName; void *capsOpaque; @@ -203,7 +205,7 @@ test_virDomainCapsFormat(const void *opaque) case CAPS_QEMU: #if WITH_QEMU if (fillQemuCaps(domCaps, data->capsName, data->arch, data->varian= t, - data->machine, data->capsOpaque) < 0) + data->machine, data->capsOpaque, data->flags) < 0) return -1; #endif break; @@ -240,12 +242,14 @@ doTestQemuInternal(const char *version, const char *arch, const char *variant, virDomainVirtType type, + unsigned int flags, void *opaque) { g_autofree char *name =3D NULL; g_autofree char *capsName =3D g_strdup_printf("caps_%s", version); g_autofree char *emulator =3D g_strdup_printf("/usr/bin/qemu-system-%s= ", arch); const char *typestr =3D NULL; + const char *flag =3D NULL; g_autofree char *mach =3D NULL; int rc; struct testData data =3D { @@ -254,6 +258,7 @@ doTestQemuInternal(const char *version, .arch =3D arch, .variant =3D variant, .type =3D type, + .flags =3D flags, .capsType =3D CAPS_QEMU, .capsName =3D capsName, .capsOpaque =3D opaque, @@ -282,8 +287,14 @@ doTestQemuInternal(const char *version, else mach =3D g_strdup(""); =20 - data.name =3D name =3D g_strdup_printf("qemu_%s%s%s.%s%s", - version, typestr, mach, arch, varia= nt); + if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) + flag =3D "-expanded"; + else + flag =3D ""; + + data.name =3D name =3D g_strdup_printf("qemu_%s%s%s.%s%s%s", + version, typestr, mach, arch, varia= nt, + flag); =20 if (STRPREFIX(version, "3.") || STRPREFIX(version, "4.") || @@ -333,21 +344,28 @@ doTestQemu(const char *inputDir G_GNUC_UNUSED, */ if (hvf) { if (doTestQemuInternal(version, NULL, arch, variant, - VIR_DOMAIN_VIRT_HVF, opaque) < 0) + VIR_DOMAIN_VIRT_HVF, 0, opaque) < 0) ret =3D -1; } else { if (doTestQemuInternal(version, NULL, arch, variant, - VIR_DOMAIN_VIRT_KVM, opaque) < 0) + VIR_DOMAIN_VIRT_KVM, 0, opaque) < 0) ret =3D -1; =20 if (doTestQemuInternal(version, "q35", arch, variant, - VIR_DOMAIN_VIRT_KVM, opaque) < 0) + VIR_DOMAIN_VIRT_KVM, 0, opaque) < 0) + ret =3D -1; + + if (doTestQemuInternal(version, "q35", arch, variant, + VIR_DOMAIN_VIRT_KVM, + VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXP= AND_CPU_FEATURES, + opaque) < 0) ret =3D -1; } =20 if (doTestQemuInternal(version, NULL, arch, variant, - VIR_DOMAIN_VIRT_QEMU, opaque) < 0) + VIR_DOMAIN_VIRT_QEMU, 0, opaque) < 0) ret =3D -1; + } else if (STREQ(arch, "aarch64")) { /* For aarch64 based on the test variant we test: * @@ -360,15 +378,15 @@ doTestQemu(const char *inputDir G_GNUC_UNUSED, */ if (hvf) { if (doTestQemuInternal(version, NULL, arch, variant, - VIR_DOMAIN_VIRT_HVF, opaque) < 0) + VIR_DOMAIN_VIRT_HVF, 0, opaque) < 0) ret =3D -1; } else { if (doTestQemuInternal(version, NULL, arch, variant, - VIR_DOMAIN_VIRT_KVM, opaque) < 0) + VIR_DOMAIN_VIRT_KVM, 0, opaque) < 0) ret =3D -1; =20 if (doTestQemuInternal(version, "virt", arch, variant, - VIR_DOMAIN_VIRT_KVM, opaque) < 0) + VIR_DOMAIN_VIRT_KVM, 0, opaque) < 0) ret =3D -1; } } else if (STRPREFIX(arch, "riscv") || STRPREFIX(arch, "loongarch64"))= { @@ -379,15 +397,15 @@ doTestQemu(const char *inputDir G_GNUC_UNUSED, * - TCG with virt machine */ if (doTestQemuInternal(version, "virt", arch, variant, - VIR_DOMAIN_VIRT_KVM, opaque) < 0) + VIR_DOMAIN_VIRT_KVM, 0, opaque) < 0) ret =3D -1; =20 if (doTestQemuInternal(version, "virt", arch, variant, - VIR_DOMAIN_VIRT_QEMU, opaque) < 0) + VIR_DOMAIN_VIRT_QEMU, 0, opaque) < 0) ret =3D -1; } else { if (doTestQemuInternal(version, NULL, arch, variant, - VIR_DOMAIN_VIRT_KVM, opaque) < 0) + VIR_DOMAIN_VIRT_KVM, 0, opaque) < 0) ret =3D -1; } =20 --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065180; cv=none; d=zohomail.com; s=zohoarc; b=SpSr/2dfRz3tEBKRjap2/F466mIshrSCVo0A9Ismu5ShPWbKO4oUVFVRp8sQTqykwt01YodcqIhmcN4WnXUUiyAW05sXoqR7I18IYrVAEFmtk5yivOW2KuuZFX4KX2rd+luQLIqxmVHQytawxhYoFUjuQvkxuTQRAQvklCjl/rI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065180; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=uo1OB9nAIIjb/vKaEWFm8DzwVdemBB7RiR5UeZBIDfE=; b=JzNVngSkMAYNTNqFRnnHEjLQj2r7EyG8HcGjKlG5tIKee4ZXCPHyUa56uC+K2GlcDVbkPgWxtd+8k76bYstiWDRkTG5QRh+3qlvAFCUabpXIBToW6Nr3Myj/oHxbJlwcJz0tn4CaNrFJZ+t5nCwaRA6vCfdMVCOEsLPRfOFk/t4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065180756428.081492910267; Fri, 29 May 2026 07:33:00 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 1BB2B3FA30; Fri, 29 May 2026 10:33:00 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id EA2E541E29; Fri, 29 May 2026 10:18:06 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 0469B41DD4; Fri, 29 May 2026 10:17:50 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id CFDB84184B for ; Fri, 29 May 2026 10:12:51 -0400 (EDT) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-80-GiXJWiEfPTi4BzRuKUT8Fw-1; Fri, 29 May 2026 10:12:49 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0448D19560A3 for ; Fri, 29 May 2026 14:12:49 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 73B2D30001BB for ; Fri, 29 May 2026 14:12:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063971; h=from:from: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; bh=uo1OB9nAIIjb/vKaEWFm8DzwVdemBB7RiR5UeZBIDfE=; b=I8cKjEuhIMNPF9qV/lWUi1VIVDVvVAD0iol/ehGYl5Jn9FmTg4xbb2pMoTVxHUWNYz8ik5 8yZo4M04oKNiFv7ZkmChAHF8BKVQbkNCIz1WoN32HP6+geYWSBL+Oqjmc9Zclc5FwNpFvA eB2qhHTdbD4s/OIzlwohzgm5/gVaDd0= X-MC-Unique: GiXJWiEfPTi4BzRuKUT8Fw-1 X-Mimecast-MFC-AGG-ID: GiXJWiEfPTi4BzRuKUT8Fw_1780063969 To: devel@lists.libvirt.org Subject: [PATCH v2 09/16] util: Publish and mock virHostCPUGetMSRFromKVM Date: Fri, 29 May 2026 16:12:14 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: _nTtaQftVc5EYg2xFfa6vwwc_1P2aOTFpKwSD_dfEaU_1780063969 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: R4UCABD3HUB5EFIDV3WEMFXVEVRAOAUG X-Message-ID-Hash: R4UCABD3HUB5EFIDV3WEMFXVEVRAOAUG X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065182682154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark The function will later be called when probing QEMU capabilities. Signed-off-by: Jiri Denemark --- Notes: Version 2: - no change src/libvirt_private.syms | 1 + src/util/virhostcpu.c | 16 +++++++++++++++- src/util/virhostcpu.h | 3 +++ tests/qemucpumock.c | 22 ++++++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 95f7b409db..4538315db0 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2620,6 +2620,7 @@ virHostCPUGetKVMMaxVCPUs; virHostCPUGetMap; virHostCPUGetMicrocodeVersion; virHostCPUGetMSR; +virHostCPUGetMSRFromKVM; virHostCPUGetOnline; virHostCPUGetOnlineBitmap; virHostCPUGetPhysAddrSize; diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c index 60743765a4..afa9ee3849 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c @@ -1376,7 +1376,12 @@ virHostCPUGetMicrocodeVersion(virArch hostArch G_GNU= C_UNUSED) =20 #if WITH_LINUX_KVM_H && defined(KVM_GET_MSRS) && \ (defined(__i386__) || defined(__x86_64__)) -static int +/* + * Returns 0 on success, + * 1 when the MSR is not supported by the host CPU, + * -1 on error. + */ +int virHostCPUGetMSRFromKVM(unsigned long index, uint64_t *result) { @@ -1613,6 +1618,15 @@ virHostCPUGetCPUID(void) return NULL; } =20 +int +virHostCPUGetMSRFromKVM(unsigned long index G_GNUC_UNUSED, + uint64_t *result G_GNUC_UNUSED) +{ + virReportSystemError(ENOSYS, "%s", + _("Reading MSRs is not supported on this platform= ")); + return -1; +} + int virHostCPUGetMSR(unsigned long index G_GNUC_UNUSED, uint64_t *msr G_GNUC_UNUSED) diff --git a/src/util/virhostcpu.h b/src/util/virhostcpu.h index 238054ed34..4df126dcc4 100644 --- a/src/util/virhostcpu.h +++ b/src/util/virhostcpu.h @@ -78,6 +78,9 @@ int virHostCPUGetOnline(unsigned int cpu, bool *online); unsigned int virHostCPUGetMicrocodeVersion(virArch hostArch) ATTRIBUTE_MOCKABLE; =20 +int virHostCPUGetMSRFromKVM(unsigned long index, + uint64_t *result) ATTRIBUTE_MOCKABLE; + int virHostCPUGetMSR(unsigned long index, uint64_t *msr); =20 diff --git a/tests/qemucpumock.c b/tests/qemucpumock.c index c85721f448..f8410912d4 100644 --- a/tests/qemucpumock.c +++ b/tests/qemucpumock.c @@ -23,6 +23,7 @@ #include "qemu/qemu_capspriv.h" #include "testutilshostcpus.h" #include "virarch.h" +#include "util/virhostcpu.h" =20 =20 virCPUDef * @@ -33,3 +34,24 @@ virQEMUCapsProbeHostCPU(virArch hostArch G_GNUC_UNUSED, =20 return testUtilsHostCpusGetDefForModel(model); } + + +int +virHostCPUGetMSRFromKVM(unsigned long index, + uint64_t *result) +{ + if (index =3D=3D 0x10a) { + /* Return some arbitrary bits in arch-capabilities MSR */ + *result =3D + 0x00000001 | /* rdctl-no */ + 0x00000008 | /* skip-l1dfl-vmentry */ + 0x00000020 | /* mds-no */ + 0x00000040 | /* pschange-mc-no */ + 0x04000000 | /* gds-no */ + 0x08000000; /* rfds-no */ + return 0; + } + + errno =3D ENOTSUP; + return -1; +} --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065290; cv=none; d=zohomail.com; s=zohoarc; b=LX2d1apzNEj/V+V5pGFuZlPcwnL9TT9UBx9ncI+DwDEJgx5JkqVU+CuoRn/E+zOo9gPISS6D0+QwNrFIeLHK7dy29pCMDe9IF/0jJuRpHZUr+qiDBbe33aukr/iGJ860jG5a94S4s5wPVbAmHqGK5tZLoq7vk3Ba+uhUJDUbScM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065290; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=KvACdSNQK6s3nK1gYmbupe9+NhclbqSoi3GLpX8opBw=; b=JJmnGTbjeF+DutUBUKpOH6kjAJ6Hes/a2Ug+8ySxw52xDqNAQkmZ34nA/ywbxbJgzh7/doOUtKZAYeIEYfDwv5lfeDJaPonUBv4v61FeSmoB+NVg6O4lNfPb4V9CRG1TrFuNE5xS73E2QUbq5O9NAxjHnHE3M6RUrO1PE4ZtSBA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065290338653.1412512302502; Fri, 29 May 2026 07:34:50 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 83A1341976; Fri, 29 May 2026 10:34:49 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 163E943DB8; Fri, 29 May 2026 10:18:16 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 7EA5141A1E; Fri, 29 May 2026 10:17:51 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3F75F41906 for ; Fri, 29 May 2026 10:12:54 -0400 (EDT) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-324-PyCBg3i7PiGpwh1MvpZVtw-1; Fri, 29 May 2026 10:12:52 -0400 Received: from mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.95]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 720C619560BB for ; Fri, 29 May 2026 14:12:51 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-10.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id CA6641688 for ; Fri, 29 May 2026 14:12:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063973; h=from:from: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; bh=KvACdSNQK6s3nK1gYmbupe9+NhclbqSoi3GLpX8opBw=; b=B4ALg9CXmwkBrBjBmmLjyn/B64ZdZXS3u3AMfYVP4wgD88gHmHhKMVDwM+iviROrPRdUY4 QW/RoJACpGYVlG4t0ZYH5FNUAK/Bpn+1R7DT+QX/6WY7T08LYLRxsEH3OdH+xbwpy7I3Z+ Zl2PTmCptTeFfp2peek2xBIS2wFnu2g= X-MC-Unique: PyCBg3i7PiGpwh1MvpZVtw-1 X-Mimecast-MFC-AGG-ID: PyCBg3i7PiGpwh1MvpZVtw_1780063971 To: devel@lists.libvirt.org Subject: [PATCH v2 10/16] cpu_x86: Introduce virCPUx86DataAddMSR Date: Fri, 29 May 2026 16:12:15 +0200 Message-ID: <9a8c0a5c9cfc1fe02a27269f0d6a19614454f462.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.6 on 10.30.177.95 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 2xeJZ7j7T3qYn12R7U2VF6ei0lomfX6FnG-OXUuWvF4_1780063971 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: U3T2KHIRM4OIAPHUGEJ3D3TQF24ERNDU X-Message-ID-Hash: U3T2KHIRM4OIAPHUGEJ3D3TQF24ERNDU X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065292339154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark This just makes the relevant part of virCPUx86GetHost reusable in other places. Signed-off-by: Jiri Denemark --- Notes: Version 2: - no change src/cpu/cpu_x86.c | 31 +++++++++++++++++++------------ src/cpu/cpu_x86.h | 4 ++++ src/libvirt_private.syms | 1 + 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 3a18d859dc..93f1427e36 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -2911,18 +2911,8 @@ virCPUx86GetHost(virCPUDef *cpu, /* This is best effort since there might be no way to read the MSR * when we are not running as root. */ for (i =3D 0; i < nmsrs; i++) { - if (virHostCPUGetMSR(msrs[i], &msr) =3D=3D 0) { - virCPUx86DataItem item =3D { - .type =3D VIR_CPU_X86_DATA_MSR, - .data.msr =3D { - .index =3D msrs[i], - .eax =3D msr & 0xffffffff, - .edx =3D msr >> 32, - }, - }; - - virCPUx86DataAdd(cpuData, &item); - } + if (virHostCPUGetMSR(msrs[i], &msr) =3D=3D 0) + virCPUx86DataAddMSR(cpuData, msrs[i], msr); } =20 ret =3D x86DecodeCPUData(cpu, cpuData, models); @@ -3460,6 +3450,23 @@ virCPUx86DataAdd(virCPUData *cpuData, } =20 =20 +void virCPUx86DataAddMSR(virCPUData *cpuData, + uint32_t index, + uint64_t value) +{ + virCPUx86DataItem item =3D { + .type =3D VIR_CPU_X86_DATA_MSR, + .data.msr =3D { + .index =3D index, + .eax =3D value & 0xffffffff, + .edx =3D value >> 32, + }, + }; + + virCPUx86DataAdd(cpuData, &item); +} + + void virCPUx86DataSetSignature(virCPUData *cpuData, unsigned int family, diff --git a/src/cpu/cpu_x86.h b/src/cpu/cpu_x86.h index 2cd965fea4..bbc2a16447 100644 --- a/src/cpu/cpu_x86.h +++ b/src/cpu/cpu_x86.h @@ -28,6 +28,10 @@ extern struct cpuArchDriver cpuDriverX86; void virCPUx86DataAdd(virCPUData *cpuData, const virCPUx86DataItem *cpuid); =20 +void virCPUx86DataAddMSR(virCPUData *cpuData, + uint32_t index, + uint64_t value); + void virCPUx86DataSetSignature(virCPUData *cpuData, unsigned int family, unsigned int model, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 4538315db0..6ce15a094b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1599,6 +1599,7 @@ virCPUValidateFeatures; =20 # cpu/cpu_x86.h virCPUx86DataAdd; +virCPUx86DataAddMSR; virCPUx86DataGetSignature; virCPUx86DataSetSignature; virCPUx86DataSetVendor; --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065123; cv=none; d=zohomail.com; s=zohoarc; b=DLpGeznLHzzt2dwOORgNC0/BuEJYhMD5tWvQd1axHh5nEQgWAAsBl6BjZwXVBfNOzQdJ0Ov+5bELmONAI/UZQ3D/fb4s+h3iqFpdnuvYfbhjy00ELojOYBXiSsoAlvvLX71mt+UMkkPJtGvtWbr0kxb2RP9eP6tkIDTPJeRkDFQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065123; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=nATzumcwk/7On+SYfcNjO72RXGr53Ur5+Nr7hw2iwG4=; b=d+t8SUyxXt/+fhPpWT08utFEIOhbpFvr/29rFYA6Mg3WsTsrLI1tnc2mAFFiXLsEaGSqOln0QVGO/Xv7Zycs45X0YCvMMfasaE/zFCVjIXNGk1MSqU8443RHTA5kY5b5s/7WGL2dHi/AKl5S4LMt2Ut7vfdGXDdPrYUm+x3AfIs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065123634824.1284326968158; Fri, 29 May 2026 07:32:03 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id EEE083FD15; Fri, 29 May 2026 10:32:02 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 0C1E941DE9; Fri, 29 May 2026 10:18:00 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id D62FA419E5; Fri, 29 May 2026 10:17:50 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 5939A41901 for ; Fri, 29 May 2026 10:12:57 -0400 (EDT) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-478-y8AUYfUwONm_Cd8FMO4aWQ-1; Fri, 29 May 2026 10:12:54 -0400 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 992CA195609D for ; Fri, 29 May 2026 14:12:53 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 144DB19560A3 for ; Fri, 29 May 2026 14:12:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063976; h=from:from: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; bh=nATzumcwk/7On+SYfcNjO72RXGr53Ur5+Nr7hw2iwG4=; b=J0Siwx0YF7NXH+idthQowpiyNgQn2RmF8qmXZz9uMpqSVvL6JPoSuTqI6MonsnssJ35Bfa D2YzHuPqCH+53kQmL7HvdN5RCT5w8vqt9qjnveucCL8ybDTD/RKpSojJHCsQ1nDQJj9GNL 5ux8w4OQM2jy2ooYUrhVgJMwqffOkoU= X-MC-Unique: y8AUYfUwONm_Cd8FMO4aWQ-1 X-Mimecast-MFC-AGG-ID: y8AUYfUwONm_Cd8FMO4aWQ_1780063973 To: devel@lists.libvirt.org Subject: [PATCH v2 11/16] cpu: Introduce virCPUUpdateFeatures Date: Fri, 29 May 2026 16:12:16 +0200 Message-ID: <746d65448c50b5b9d80ff773cb0a17f24d25389e.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bnBNDm6fQxUGd1eYVD1cEog0BUtPOz2vKzyO51bxW78_1780063973 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: WUUGRWCZ76FYIINMVPHGNB2QRN6VVIJX X-Message-ID-Hash: WUUGRWCZ76FYIINMVPHGNB2QRN6VVIJX X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065125652154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark This new API can be used to update an existing CPU definition with features described by CPU data. Signed-off-by: Jiri Denemark --- Notes: Version 2: - no change src/cpu/cpu.c | 33 +++++++++++++++++++++++++++++++++ src/cpu/cpu.h | 12 ++++++++++++ src/cpu/cpu_x86.c | 23 +++++++++++++++++++++++ src/libvirt_private.syms | 1 + 4 files changed, 69 insertions(+) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index d81e620a1d..03174d5bad 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -1359,6 +1359,39 @@ virCPUGetCanonicalModel(virArch arch, } =20 =20 +/** virCPUUpdateFeatures: + * + * @arch: CPU architecture + * @cpu: CPU definition to update + * @cpuData: CPU data describing features + * @policy: to be used by the updated features + * + * Updates features described in @cpuData to use the specified @policy. Mi= ssing + * features will be automatically added to the CPU definition. + * + * Returns 0 on success, -1 otherwise. + */ +int +virCPUUpdateFeatures(virArch arch, + virCPUDef *cpu, + virCPUData *cpuData, + virCPUFeaturePolicy policy) +{ + struct cpuArchDriver *driver; + + VIR_DEBUG("arch=3D%s, cpu=3D%p, model=3D%s", + virArchToString(arch), cpu, NULLSTR(cpu->model)); + + if (!(driver =3D cpuGetSubDriver(arch))) + return -1; + + if (!driver->updateFeatures) + return 0; + + return driver->updateFeatures(cpu, cpuData, policy); +} + + /** * virCPUArchIsSupported: * diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h index 36fd123675..65711ac085 100644 --- a/src/cpu/cpu.h +++ b/src/cpu/cpu.h @@ -143,6 +143,11 @@ typedef int typedef const char * (*virCPUArchGetCanonicalModel)(const char *model); =20 +typedef int +(*virCPUArchUpdateFeatures)(virCPUDef *cpu, + virCPUData *cpuData, + virCPUFeaturePolicy policy); + struct cpuArchDriver { const char *name; const virArch *arch; @@ -172,6 +177,7 @@ struct cpuArchDriver { virCPUArchDataGetHost dataGetHost; virCPUArchGetCheckMode getCheckMode; virCPUArchGetCanonicalModel getCanonicalModel; + virCPUArchUpdateFeatures updateFeatures; }; =20 =20 @@ -332,6 +338,12 @@ const char * virCPUGetCanonicalModel(virArch arch, const char *model); =20 +int +virCPUUpdateFeatures(virArch arch, + virCPUDef *cpu, + virCPUData *cpuData, + virCPUFeaturePolicy policy); + bool virCPUArchIsSupported(virArch arch); =20 diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 93f1427e36..f6a6a2a46c 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -3780,6 +3780,28 @@ virCPUx86GetCanonicalModel(const char *modelName) } =20 =20 +static int +virCPUx86UpdateFeatures(virCPUDef *cpu, + virCPUData *cpuData, + virCPUFeaturePolicy policy) +{ + virCPUx86Data *data =3D &cpuData->data.x86; + virCPUx86Map *map; + size_t i; + + if (!(map =3D virCPUx86GetMap())) + return -1; + + for (i =3D 0; i < map->nfeatures; i++) { + virCPUx86Feature *feature =3D map->features[i]; + if (x86DataIsSubset(data, &feature->data)) + virCPUDefUpdateFeature(cpu, feature->name, policy); + } + + return 0; +} + + struct cpuArchDriver cpuDriverX86 =3D { .name =3D "x86", .arch =3D archs, @@ -3814,4 +3836,5 @@ struct cpuArchDriver cpuDriverX86 =3D { #endif .getCheckMode =3D virCPUx86GetCheckMode, .getCanonicalModel =3D virCPUx86GetCanonicalModel, + .updateFeatures =3D virCPUx86UpdateFeatures, }; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 6ce15a094b..5f9f79cff7 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1593,6 +1593,7 @@ virCPUGetVendorForModel; virCPUProbeHost; virCPUTranslate; virCPUUpdate; +virCPUUpdateFeatures; virCPUUpdateLive; virCPUValidateFeatures; =20 --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065237; cv=none; d=zohomail.com; s=zohoarc; b=futO/rOGVoGaLA1G2ku4ncY79ia9eFMN17yaFTnEyzK9XxTnNI4jwVMx/EROAHkvWvzWsZOV8f/mRM9YU5JQ+ScGXe/DuWwEMUxFxx5cYJeMVALErqeXTyZHX1PSev4OCSur0bDsVX5UORMXITgkhK8PPGptjlvw7a9Jjs2+qEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065237; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=Zp4VuDiPqLqL5e7nIE65wNUpg18SFNtPrcGFnlTbDM4=; b=ft6+WxMrBJ++WM9umLcetz9rYF0v8ssR15F5wo53iSGXPI4xxRbLVrXOhxUIgMfLr6i1ESq4rbORBM3sCMpqYyo2qCTnW0VeDYpqMdJ4po/c5HSZCAf9E5IlfegtMWlNUp3iUz0NnPRY0WY0CjX5/KWKdUcGOkx7tliv8jaDyE0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065237018401.2153601950679; Fri, 29 May 2026 07:33:57 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id D4F2A3FA60; Fri, 29 May 2026 10:33:55 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 000CF423EA; Fri, 29 May 2026 10:18:11 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 68F624184B; Fri, 29 May 2026 10:17:51 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id DC3844196A for ; Fri, 29 May 2026 10:12:58 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-462-7kdCaxjuPROga5gzknE1iA-1; Fri, 29 May 2026 10:12:57 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2A4591800617 for ; Fri, 29 May 2026 14:12:56 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 9C8F818004A3 for ; Fri, 29 May 2026 14:12:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063978; h=from:from: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; bh=Zp4VuDiPqLqL5e7nIE65wNUpg18SFNtPrcGFnlTbDM4=; b=VykIfApSkWqjmPqGNQIFFTLqJIoaenLsQo7L05TdOWO3Ot+8ad+ho36VEosk9YlTfWLdRy igdWrtsKVoZwCVw9c4qtQVXl1QV5NVc7UvqLliGcY2GPc29l/7gFnYsfu1z7+l9quKbJZb +sYgxjPC3B5eqb4hnlyKKq+UHK9Gsy0= X-MC-Unique: 7kdCaxjuPROga5gzknE1iA-1 X-Mimecast-MFC-AGG-ID: 7kdCaxjuPROga5gzknE1iA_1780063976 To: devel@lists.libvirt.org Subject: [PATCH v2 12/16] Fix documentation of VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES Date: Fri, 29 May 2026 16:12:17 +0200 Message-ID: <5d6518defdb0511020489f177254d318e0ae767d.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: -e_3xAGJR9j9M4DdZQSjmjW55PIY3VkWXgnY30_QmLA_1780063976 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: QSP3SVINBGZKHSVPJL6XVQ6JK7Q2WX7M X-Message-ID-Hash: QSP3SVINBGZKHSVPJL6XVQ6JK7Q2WX7M X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065238536158500 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark The flag is designed for expanding the CPU model used by host-model. But the documentation was sometimes describing it as showing all CPU features supported on the host, which is wrong as the host may support features that would not be enabled in host-model. Signed-off-by: Jiri Denemark --- Notes: Version 2: - v1 considered the flag name suboptimal and documentation talking about supported features to be correct, but it appeared it was the other way around... the documentation now always says the flag is only for expanding the host CPU model docs/manpages/virsh.rst | 4 ++-- src/libvirt-domain.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index d1901c82c2..f8318f6264 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -640,8 +640,8 @@ flagged as deprecated for the CPU model by the hypervis= or. These features will be paired with the "disable" policy. =20 The **--expand-cpu-features** option will cause the host-model CPU definit= ion -to contain all CPU features supported on the host including those implicit= ly -enabled by the selected CPU model. +to contain all required CPU features including those implicitly enabled by= the +selected CPU model. =20 =20 pool-capabilities diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index a4cbeb8ad4..425a73e75a 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -12353,9 +12353,9 @@ virDomainSetUserPassword(virDomainPtr dom, * passthrough and so on. * * If @flags includes VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATU= RES, - * libvirt will explicitly list all CPU features (in host-model CPU defini= tion) - * that are supported on the host. Without this flag features that are par= t of - * the CPU model itself will not be listed. + * libvirt will explicitly list all CPU features that will be enabled for + * host-model CPU mode. Without this flag features that are part of the CPU + * model itself will not be listed. * * Returns NULL in case of error or an XML string * defining the capabilities. --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065342; cv=none; d=zohomail.com; s=zohoarc; b=f8n13NgD8CRVdYJBc7B9TQjp9Xla4jZOT4qdNyp5lvQChrqaPZ0GqSocx47dH1MWwg6N+GuyojmosuOUEtmKh7F7hg8XJOIQDrB7jsrRu5v6/AS4mjCqgUIqDjBRNJV3yfz9m1cX691h+59kpjncS/y3+sdSqxtzfXXtp0RCqHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065342; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=oOWM0rddLq8ff790mBXuMJ2Uo97zvbKCulWCxQ+fDn4=; b=cd1WbTHo+SCHTs+Rpjc4Z2F7KOMzq76IAGOAhQYDegqF/Tv9/1iVu3pK08VwdtfVmHEY2LzFtd2KvwD0vbYb0P1exFP5c3LL+Pm2UF7qws1nhG66NMVwA7BnW6tbJLZPUmSfRw6oOwh2fR1hzdq4AqbmCTd+KMBk4OBPEreUWGo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065342014334.70537329573426; Fri, 29 May 2026 07:35:42 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 465F541AA9; Fri, 29 May 2026 10:35:41 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 9BC6E419F4; Fri, 29 May 2026 10:18:19 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 545584184B; Fri, 29 May 2026 10:17:52 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id C87E441CAA for ; Fri, 29 May 2026 10:13:00 -0400 (EDT) Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-639-mNIKV0v3OWGN8qCtqkTL6A-1; Fri, 29 May 2026 10:12:59 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 3862919560BD for ; Fri, 29 May 2026 14:12:58 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B21A6180075D for ; Fri, 29 May 2026 14:12:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063980; h=from:from: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; bh=oOWM0rddLq8ff790mBXuMJ2Uo97zvbKCulWCxQ+fDn4=; b=LBTnPLewcub9ayErAiM9dnDEtJTD7qkM0u9a8Y5GzLKf+tbuDC40c5cP5Lq6rL+M/wDBjV 6xEAXSMQI3BnLmlt2At45vgOICIOtFDxF8gsZfWDNxwDxIA0dsJAEbkxe7gTsKlBs/cRtG 7RkSwLTFVY+xaOHu2CtuQHdbxXSsl1s= X-MC-Unique: mNIKV0v3OWGN8qCtqkTL6A-1 X-Mimecast-MFC-AGG-ID: mNIKV0v3OWGN8qCtqkTL6A_1780063978 To: devel@lists.libvirt.org Subject: [PATCH v2 13/16] Introduce VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag Date: Fri, 29 May 2026 16:12:18 +0200 Message-ID: <6e93257f9ad7d1524bc675ddf79c843181c46fdf.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: bpTm_4kMY-sx22nC-b4GfuGsKgZHd5cR8ujeIREsO04_1780063978 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: SBVDF7IRI7YAPSDR35ROIDO5ETBVS63X X-Message-ID-Hash: SBVDF7IRI7YAPSDR35ROIDO5ETBVS63X X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065343198154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Some CPU features may be enabled explicitly, but should not automatically become part of a host-model CPU. Users can now request such features to be shown in the host-model CPU in domain capabilities by VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag. Signed-off-by: Jiri Denemark --- Notes: Version 2: - new patch include/libvirt/libvirt-domain.h | 3 +++ src/libvirt-domain.c | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 8f07ef2156..0a237bf880 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -1549,6 +1549,9 @@ typedef enum { VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_FEATURES =3D (1= << 0), /* Report all host model CPU features. (Since: 12.2.0) */ VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES =3D (1 << 1), + /* Report all CPU features supported on the host, even those that will= not + * be enabled by host-model CPU mode. (Since: 12.5.0) */ + VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES =3D (1 << 2= ), } virConnectGetDomainCapabilitiesFlags; =20 char * virConnectGetDomainCapabilities(virConnectPtr conn, diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index 425a73e75a..405c9f187d 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -12357,6 +12357,14 @@ virDomainSetUserPassword(virDomainPtr dom, * host-model CPU mode. Without this flag features that are part of the CPU * model itself will not be listed. * + * Adding VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES to @f= lags + * tells libvirt to update the host-model CPU definition with features tha= t are + * supported on the host, but should not be enabled by default when starti= ng a + * domain with host-model CPU. Use both + * VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES and + * VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES flags to get a + * complete list of features that can be enabled on the host. + * * Returns NULL in case of error or an XML string * defining the capabilities. * --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065396; cv=none; d=zohomail.com; s=zohoarc; b=kVFcwjEPTMyoadDTJ7cDi8s9Ra22eQjBCL9t9m9gEA5ODI7uXccaZ4QzfzUvSdmCX7Euz2uUZKXpMWBntewct5BdAjOUG038HCSnKkvazx/3DpH8etaEDxhT3nmre3OY5Vc5DJaBpULei/LCnDfeA/aGSkhCMndeYXVFMyVib+o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065396; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=diWmANPCrBtoY1dZ/wovWuQFhv+cUntNVsR5loffz34=; b=TlseJhCmUVD9jPJziCWV5aEyoLq/z4DpZ0vVgrh1k0GpRe2Cvu2grM3baSzxlcERQSQx5qagti7cgbagj9jMHjenHGlb7gjmunB5U1pF3RIuM4tcSZzvaVDOK2H+UBWrfpOMJOLyeTXedbbuhewXuVX1fzIRrVBb/IlTiHhe9i4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065396444637.6747861581673; Fri, 29 May 2026 07:36:36 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B7C5A41B1D; Fri, 29 May 2026 10:36:35 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id C75EA43E38; Fri, 29 May 2026 10:18:22 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B81883F967; Fri, 29 May 2026 10:17:52 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id D76703F967 for ; Fri, 29 May 2026 10:13:03 -0400 (EDT) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-551-lre92dYaNIGtuDENRZCw5w-1; Fri, 29 May 2026 10:13:01 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C030C1956094 for ; Fri, 29 May 2026 14:13:00 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 244E21955F22 for ; Fri, 29 May 2026 14:12:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063983; h=from:from: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; bh=diWmANPCrBtoY1dZ/wovWuQFhv+cUntNVsR5loffz34=; b=WX59BDueWWIwZauwLWrZRy6ECVUA7GOMT0/zAtuyspCiUlghA3synIKbAjRkqTRm5ViTeK QTUCb511dS9BEUtdF1ombdASXeaEK17SYMARNNL40cObEDfNn4UpfhBRQDReMznPjLUlpJ Wvbyut8GsbyLcbbDSqqQTKJpCHPvI1g= X-MC-Unique: lre92dYaNIGtuDENRZCw5w-1 X-Mimecast-MFC-AGG-ID: lre92dYaNIGtuDENRZCw5w_1780063980 To: devel@lists.libvirt.org Subject: [PATCH v2 14/16] virsh: Add --supported-cpu-features option for domcapabilities Date: Fri, 29 May 2026 16:12:19 +0200 Message-ID: <07141db351e866dc2d4dd82cbbcc3483732d676d.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 0YPeGymbyE8sOUNTnjogkk_ccA3w5dwNFdo9pameWA4_1780063980 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 2BTRPSWWSKC4IRLEARX2RS4232URLTUT X-Message-ID-Hash: 2BTRPSWWSKC4IRLEARX2RS4232URLTUT X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065398211154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark The option corresponds to the VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES API flag. Signed-off-by: Jiri Denemark --- Notes: Version 2: - new patch docs/manpages/virsh.rst | 8 +++++++- tools/virsh-host.c | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst index f8318f6264..04d30ac674 100644 --- a/docs/manpages/virsh.rst +++ b/docs/manpages/virsh.rst @@ -592,7 +592,7 @@ domcapabilities domcapabilities [virttype] [emulatorbin] [arch] [machine] [--xpath EXPRESSION] [--wrap] [--disable-deprecated-features] - [--expand-cpu-features] + [--expand-cpu-features] [--supported-cpu-features] =20 =20 Print an XML document describing the domain capabilities for the @@ -643,6 +643,12 @@ The **--expand-cpu-features** option will cause the ho= st-model CPU definition to contain all required CPU features including those implicitly enabled by= the selected CPU model. =20 +The **--supported-cpu-features** option will update the host-model CPU +definition with features that are supported on the host, but should not be +enabled by default when starting a domain with host-model CPU. Using both +**--supported-cpu-features** and **--expand-cpu-features** will provide a +complete list of features that can be enabled on the host. + =20 pool-capabilities ----------------- diff --git a/tools/virsh-host.c b/tools/virsh-host.c index ef91e22fed..e71dc21bf3 100644 --- a/tools/virsh-host.c +++ b/tools/virsh-host.c @@ -123,6 +123,10 @@ static const vshCmdOptDef opts_domcapabilities[] =3D { .type =3D VSH_OT_BOOL, .help =3D N_("show all features in host CPU model"), }, + {.name =3D "supported-cpu-features", + .type =3D VSH_OT_BOOL, + .help =3D N_("show supported CPU features in host model"), + }, {.name =3D NULL} }; =20 @@ -145,6 +149,9 @@ cmdDomCapabilities(vshControl *ctl, const vshCmd *cmd) if (vshCommandOptBool(cmd, "expand-cpu-features")) flags |=3D VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES; =20 + if (vshCommandOptBool(cmd, "supported-cpu-features")) + flags |=3D VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATU= RES; + if (vshCommandOptString(ctl, cmd, "virttype", &virttype) < 0 || vshCommandOptString(ctl, cmd, "emulatorbin", &emulatorbin) < 0 || vshCommandOptString(ctl, cmd, "arch", &arch) < 0 || --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065504; cv=none; d=zohomail.com; s=zohoarc; b=GXd/VCAZ73uJ8bXcdsAuknTkZfyO6Co+Wi4Q0iJwSBMuSbXiQT0IhFy3FvgWODU9gZGgdD9jUyCChox+ULBqg5wQkPkwUij/vQnS1iO/OhGkYlRPZ9ODh+sd/biT/n/1jmyky4nvrdKLTirisAnBXE0tjWKA0393bVpOcKMLMw4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065504; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=Dap9TzIOuWdNVxjUJwxI0deJCIjmA1KXYoh3IbX83HE=; b=A8LnzDlnvUp5vUdvutZhQw7GF4zIh1e9XZTk9KXB3esk5/aCnG6shRKyWu2uLL11bGmn8AsiQgZD2EsVBwJ7ytls86izZkaCD/oXBiofV0hX+T54IEdgI27ZKaXIq1nnSxmwlpBMoM4vLyx/edXNrj9/vtESIPCNjNImZ7zyPDI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065504289155.98433062002016; Fri, 29 May 2026 07:38:24 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 6C91C41BB8; Fri, 29 May 2026 10:38:12 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id A181143EB9; Fri, 29 May 2026 10:19:35 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 6C2A141E36; Fri, 29 May 2026 10:19:11 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 48ABC41ABA for ; Fri, 29 May 2026 10:13:18 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-613-4wvJ4a3_N6SeeZEBkTv4Pg-1; Fri, 29 May 2026 10:13:08 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 73AA818002F3 for ; Fri, 29 May 2026 14:13:07 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AD12D30001BB for ; Fri, 29 May 2026 14:13:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063997; h=from:from: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; bh=Dap9TzIOuWdNVxjUJwxI0deJCIjmA1KXYoh3IbX83HE=; b=Q6VexoNdGo5A/S1OPH6lCJC0q3lGhWRIbtpTV5JUIXJlzwsMq3GQBoRjTUnKs99H5OxEBa uKYtFhUFm3nxmaC+e8BsNkw88Gb9yHxKi0Q7QFe0Qxuk8/4en7tlNT++1fGFjXHdAacu2t CKWl7G/s8CzLNmQ0otoaQl2gpcTFsu4= X-MC-Unique: 4wvJ4a3_N6SeeZEBkTv4Pg-1 X-Mimecast-MFC-AGG-ID: 4wvJ4a3_N6SeeZEBkTv4Pg_1780063987 To: devel@lists.libvirt.org Subject: [PATCH v2 15/16] domaincapstest: Test SUPPORTED_CPU_FEATURES flag Date: Fri, 29 May 2026 16:12:20 +0200 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 4PFoWx6A6xWMzds8VRqo8S6mhC2p7UyY3TktO0cjOIM_1780063987 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LZHNHW4WQWALO5EVHFAAIGQ564SXCQ5F X-Message-ID-Hash: LZHNHW4WQWALO5EVHFAAIGQ564SXCQ5F X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065506248154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark Signed-off-by: Jiri Denemark --- Notes: Version 2: - new patch ...emu_10.0.0-q35.x86_64+amdsev-supported.xml | 1015 ++++++++ .../qemu_10.0.0-q35.x86_64-supported.xml | 1903 ++++++++++++++ ...u_10.1.0-q35.x86_64+inteltdx-supported.xml | 1064 ++++++++ .../qemu_10.1.0-q35.x86_64-supported.xml | 2252 +++++++++++++++++ .../qemu_10.2.0-q35.x86_64+mshv-supported.xml | 237 ++ .../qemu_10.2.0-q35.x86_64-supported.xml | 1358 ++++++++++ .../qemu_11.0.0-q35.x86_64+sgx-supported.xml | 1740 +++++++++++++ .../qemu_11.0.0-q35.x86_64-supported.xml | 1731 +++++++++++++ .../qemu_7.2.0-q35.x86_64-supported.xml | 1181 +++++++++ .../qemu_8.0.0-q35.x86_64-supported.xml | 1290 ++++++++++ .../qemu_8.1.0-q35.x86_64-supported.xml | 1548 +++++++++++ .../qemu_8.2.0-q35.x86_64-supported.xml | 1550 ++++++++++++ .../qemu_9.0.0-q35.x86_64-supported.xml | 1551 ++++++++++++ .../qemu_9.1.0-q35.x86_64-supported.xml | 1687 ++++++++++++ ...qemu_9.2.0-q35.x86_64+amdsev-supported.xml | 895 +++++++ .../qemu_9.2.0-q35.x86_64-supported.xml | 1745 +++++++++++++ tests/domaincapstest.c | 8 + 17 files changed, 22755 insertions(+) create mode 100644 tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-supp= orted.xml create mode 100644 tests/domaincapsdata/qemu_10.0.0-q35.x86_64-supported.x= ml create mode 100644 tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-su= pported.xml create mode 100644 tests/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.x= ml create mode 100644 tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-suppor= ted.xml create mode 100644 tests/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.x= ml create mode 100644 tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-support= ed.xml create mode 100644 tests/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.x= ml create mode 100644 tests/domaincapsdata/qemu_7.2.0-q35.x86_64-supported.xml create mode 100644 tests/domaincapsdata/qemu_8.0.0-q35.x86_64-supported.xml create mode 100644 tests/domaincapsdata/qemu_8.1.0-q35.x86_64-supported.xml create mode 100644 tests/domaincapsdata/qemu_8.2.0-q35.x86_64-supported.xml create mode 100644 tests/domaincapsdata/qemu_9.0.0-q35.x86_64-supported.xml create mode 100644 tests/domaincapsdata/qemu_9.1.0-q35.x86_64-supported.xml create mode 100644 tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-suppo= rted.xml create mode 100644 tests/domaincapsdata/qemu_9.2.0-q35.x86_64-supported.xml diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-supported.x= ml b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-supported.xml new file mode 100644 index 0000000000..85eea3ddc3 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64+amdsev-supported.xml @@ -0,0 +1,1015 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Genoa + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + Bro= adwell-IBRS + + + + + Br= oadwell-noTSX + Br= oadwell-noTSX-IBRS + Broadwell-v1 + + + + + Broadwell-v2 + Broadwell-v3 + + + + + Broadwell-v4 + Cascadelake-Server + + + + + Cascadelake-Server-noTSX + + + + Cascadelake-Server-v1 + + + + + Cascadelake-Server-v2 + + + + + + Cascadelake-Server-v3 + + + + Cascadelake-Server-v4 + + + + Cascadelake-Server-v5 + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + Cooperlake-v1 + + + + + + + Cooperlake-v2 + + + + + + + Den= verton + + + + Denverton-v1 + + + + Denverton-v2 + Denverton-v3 + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPY= C-Genoa + EPYC-Genoa-v1 + EPYC-IBPB= + EPY= C-Milan + EPYC-Milan-v1 + EPYC-Milan-v2 + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + EPYC-Rome-v3 + EPYC-Rome-v4 + EPYC-v1 + EPYC-v2 + EPYC-v3 + EPYC-v4 + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + Haswe= ll-IBRS + + + + + Hasw= ell-noTSX + Hasw= ell-noTSX-IBRS + Haswell-v1 + + + + + Haswell-v2 + Haswell-v3 + + + + + Haswell-v4 + Icelake-Server + + + + + Icelake-Server-noTSX + Icelake-Server-v1 + + + + + Icelake-Server-v2 + Icelake-Server-v3 + + + + + Icelake-Server-v4 + + + + + Icelake-Server-v5 + + + + + Icelake-Server-v6 + + + + + Icelake-Server-v7 + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + KnightsMill-v1 + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + Skylake-Client-IBRS + + + + + Skylake-Client-noTSX-IBRS + Skylake-Client-v1 + + + + + Skylake-Client-v2 + + + + + Skylake-Client-v3 + Skylake-Client-v4 + Skylake-Server + + + + + Skylake-Server-IBRS + + + + + Skylake-Server-noTSX-IBRS + Skylake-Server-v1 + + + + + Skylake-Server-v2 + + + + + Skylake-Server-v3 + Skylake-Server-v4 + Skylake-Server-v5 + Sno= wridge + + + + + + + + + Snowridge-v1 + + + + + + + + + Snowridge-v2 + + + + + + + + Snowridge-v3 + + + + + + + + Snowridge-v4 + + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + 51 + 1 + 59 + 450 + BlAwmcr4Ruya3YvEGe2EBxuWjMAfIYolslNNM92RsIKxLkWDDRqivqSBOD+q= QRCYS9joBYSHMD1g+rmjY+MmVw=3D=3D + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + sev + sev-snp + + + + diff --git a/tests/domaincapsdata/qemu_10.0.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_10.0.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..62673313b4 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.0.0-q35.x86_64-supported.xml @@ -0,0 +1,1903 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + YongFeng + + + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-supported= .xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-supported.xml new file mode 100644 index 0000000000..092d157661 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx-supported.xml @@ -0,0 +1,1064 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + GraniteRapids + Intel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Br= oadwell + Br= oadwell-IBRS + Br= oadwell-noTSX + Br= oadwell-noTSX-IBRS + Broadwell-v1 + Broadwell-v2 + Broadwell-v3 + Broadwell-v4 + Cascadelake-Server + Cascadelake-Server-noTSX + Cascadelake-Server-v1 + Cascadelake-Server-v2 + Cascadelake-Server-v3 + Cascadelake-Server-v4 + Cascadelake-Server-v5 + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + C= ooperlake + Cooperlake-v1 + Cooperlake-v2 + Den= verton + + + + Denverton-v1 + + + + Denverton-v2 + Denverton-v3 + Dhyana= + + + + + + + + + Dhyana-v1 + + + + + + + + + Dhyana-v2 + + + + + + + + + EPYC + + + + + + + + + EPYC= -Genoa + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + EPYC-Genoa-v2 + + + + + + + + + + + + + + + + + + + + EPYC-IBPB<= /model> + + + + + + + + + EPYC= -Milan + + + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + + + EPYC-Milan-v3 + + + + + + + + + + + + + + + + + EPYC-= Rome + + + + + + + + + + + + EPYC-Rome-v1 + + + + + + + + + + + + EPYC-Rome-v2 + + + + + + + + + + + + EPYC-Rome-v3 + + + + + + + + + + + + EPYC-Rome-v4 + + + + + + + + + + + + EPYC-Rome-v5 + + + + + + + + + + + + EPYC= -Turin + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Turin-v1 + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-v1 + + + + + + + + + EPYC-v2 + + + + + + + + + EPYC-v3 + + + + + + + + + + + + EPYC-v4 + + + + + + + + + + + + EPYC-v5 + + + + + + + + + + + + GraniteRapids + + + + + + + + GraniteRapids-v1 + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + Hasw= ell + Hasw= ell-IBRS + Hasw= ell-noTSX + Hasw= ell-noTSX-IBRS + Haswell-v1 + Haswell-v2 + Haswell-v3 + Haswell-v4 + Icelake-Server + Icelake-Server-noTSX + Icelake-Server-v1 + Icelake-Server-v2 + Icelake-Server-v3 + Icelake-Server-v4 + Icelake-Server-v5 + Icelake-Server-v6 + Icelake-Server-v7 + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + KnightsMill-v1 + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opte= ron_G3 + + + + + Opteron_G3-v1 + + + + + Opte= ron_G4 + + + + + + + Opteron_G4-v1 + + + + + + + Opte= ron_G5 + + + + + + + + Opteron_G5-v1 + + + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + SapphireRapids-v1 + SapphireRapids-v2 + + + + + + SapphireRapids-v3 + + + + + + SapphireRapids-v4 + + + + + + = SierraForest + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + Skylake-Client + Skylake-Client-IBRS + Skylake-Client-noTSX-IBRS + Skylake-Client-v1 + Skylake-Client-v2 + Skylake-Client-v3 + Skylake-Client-v4 + Skylake-Server + Skylake-Server-IBRS + Skylake-Server-noTSX-IBRS + Skylake-Server-v1 + Skylake-Server-v2 + Skylake-Server-v3 + Skylake-Server-v4 + Skylake-Server-v5 + Sno= wridge + + + + + + Snowridge-v1 + + + + + + Snowridge-v2 + + + + + Snowridge-v3 + + + + + Snowridge-v4 + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + athlon + + + + + + athlon-v1 + + + + + + cor= e2duo + core2duo-v1 + core= duo + coreduo-v1 + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + n270-v1 + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + + + + phenom-v1 + + + + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + vnc + rdp + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + + pty + unix + + + + + virtio + + + qemu + + + builtin + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + dbus + + + + + + + + + + + + + + + + yes + yes + yes + 500732 + +
+
+
+
+ + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + evmcs + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..14beb4b11a --- /dev/null +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml @@ -0,0 +1,2252 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + + Denverton-v1 + + + + + + + Denverton-v2 + + + + + + Denverton-v3 + + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-Milan-v3 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Turin-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + YongFeng + + + + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-supported.xml= b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-supported.xml new file mode 100644 index 0000000000..885108ac70 --- /dev/null +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64+mshv-supported.xml @@ -0,0 +1,237 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.2 + x86_64 + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + vnc + rdp + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + dbus + + + + + + + + + + + + + + + + + + spinlocks + vendor_id + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..7a89f10f8d --- /dev/null +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml @@ -0,0 +1,1358 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-10.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Turin + AMD + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + Bro= adwell-IBRS + + + + + + + Bro= adwell-noTSX + + + + + Bro= adwell-noTSX-IBRS + + + + + Broadwell-v1 + + + + + + + Broadwell-v2 + + + + + Broadwell-v3 + + + + + + + Broadwell-v4 + + + + + Cascadelake-Server + + + + + + + Cascadelake-Server-noTSX + + + + + + Cascadelake-Server-v1 + + + + + + + Cascadelake-Server-v2 + + + + + + + + Cascadelake-Server-v3 + + + + + + Cascadelake-Server-v4 + + + + + + Cascadelake-Server-v5 + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + Cooperlake-v1 + + + + + + + + + Cooperlake-v2 + + + + + + + + + Den= verton + + + + + Denverton-v1 + + + + + Denverton-v2 + + + + Denverton-v3 + + + + Dhyana= + + + + Dhyana-v1 + + + + Dhyana-v2 + + + + EPYC + + + + EPYC= -Genoa + + + + + + EPYC-Genoa-v1 + + + + + + EPYC-Genoa-v2 + + + + + + EPYC-IBPB<= /model> + + + + EPYC= -Milan + + + + + EPYC-Milan-v1 + + + + + EPYC-Milan-v2 + + + + + EPYC-Milan-v3 + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + EPYC-Rome-v3 + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + EPYC-Turin-v1 + + + + + + EPYC-v1 + + + + EPYC-v2 + + + + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + Haswe= ll-IBRS + + + + + + Haswe= ll-noTSX + + + + Haswe= ll-noTSX-IBRS + + + + Haswell-v1 + + + + + + Haswell-v2 + + + + Haswell-v3 + + + + + + Haswell-v4 + + + + Icelake-Server + + + + + + + + Icelake-Server-noTSX + + + + + + Icelake-Server-v1 + + + + + + + + Icelake-Server-v2 + + + + + + Icelake-Server-v3 + + + + + + + + Icelake-Server-v4 + + + + + + + + Icelake-Server-v5 + + + + + + + + Icelake-Server-v6 + + + + + + + + Icelake-Server-v7 + + + + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + + KnightsMill-v1 + + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + Skylake-Client-IBRS + + + + + + + Skylake-Client-noTSX-IBRS + + + + + Skylake-Client-v1 + + + + + + + Skylake-Client-v2 + + + + + + + Skylake-Client-v3 + + + + + Skylake-Client-v4 + + + + + Skylake-Server + + + + + + + Skylake-Server-IBRS + + + + + + + Skylake-Server-noTSX-IBRS + + + + + Skylake-Server-v1 + + + + + + + Skylake-Server-v2 + + + + + + + Skylake-Server-v3 + + + + + Skylake-Server-v4 + + + + + Skylake-Server-v5 + + + + + Sno= wridge + + + + + + + + Snowridge-v1 + + + + + + + + Snowridge-v2 + + + + + + + Snowridge-v3 + + + + + + + Snowridge-v4 + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml = b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml new file mode 100644 index 0000000000..b4a1291d2e --- /dev/null +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml @@ -0,0 +1,1740 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-11.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Turin + AMD + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + Bro= adwell-IBRS + + + + + + + Bro= adwell-noTSX + + + + + Bro= adwell-noTSX-IBRS + + + + + Broadwell-v1 + + + + + + + Broadwell-v2 + + + + + Broadwell-v3 + + + + + + + Broadwell-v4 + + + + + Cascadelake-Server + + + + + + + Cascadelake-Server-noTSX + + + + + + Cascadelake-Server-v1 + + + + + + + Cascadelake-Server-v2 + + + + + + + + Cascadelake-Server-v3 + + + + + + Cascadelake-Server-v4 + + + + + + Cascadelake-Server-v5 + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + Cooperlake-v1 + + + + + + + + + Cooperlake-v2 + + + + + + + + + Den= verton + + + + + Denverton-v1 + + + + + Denverton-v2 + + + + Denverton-v3 + + + + Dhyana= + + + + Dhyana-v1 + + + + Dhyana-v2 + + + + DiamondRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DiamondRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC + + + + EPYC= -Genoa + + + + + + EPYC-Genoa-v1 + + + + + + EPYC-Genoa-v2 + + + + + + EPYC-IBPB<= /model> + + + + EPYC= -Milan + + + + + EPYC-Milan-v1 + + + + + EPYC-Milan-v2 + + + + + EPYC-Milan-v3 + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + EPYC-Rome-v3 + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + EPYC-Turin-v1 + + + + + + EPYC-v1 + + + + EPYC-v2 + + + + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + Haswe= ll-IBRS + + + + + + Haswe= ll-noTSX + + + + Haswe= ll-noTSX-IBRS + + + + Haswell-v1 + + + + + + Haswell-v2 + + + + Haswell-v3 + + + + + + Haswell-v4 + + + + Icelake-Server + + + + + + + + Icelake-Server-noTSX + + + + + + Icelake-Server-v1 + + + + + + + + Icelake-Server-v2 + + + + + + Icelake-Server-v3 + + + + + + + + Icelake-Server-v4 + + + + + + + + Icelake-Server-v5 + + + + + + + + Icelake-Server-v6 + + + + + + + + Icelake-Server-v7 + + + + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + + KnightsMill-v1 + + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + Skylake-Client-IBRS + + + + + + + Skylake-Client-noTSX-IBRS + + + + + Skylake-Client-v1 + + + + + + + Skylake-Client-v2 + + + + + + + Skylake-Client-v3 + + + + + Skylake-Client-v4 + + + + + Skylake-Server + + + + + + + Skylake-Server-IBRS + + + + + + + Skylake-Server-noTSX-IBRS + + + + + Skylake-Server-v1 + + + + + + + Skylake-Server-v2 + + + + + + + Skylake-Server-v3 + + + + + Skylake-Server-v4 + + + + + Skylake-Server-v5 + + + + + Sno= wridge + + + + + + + + Snowridge-v1 + + + + + + + + Snowridge-v2 + + + + + + + Snowridge-v3 + + + + + + + Snowridge-v4 + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + no + yes + no + 524288 + +
+
+ + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..e529e0ccee --- /dev/null +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml @@ -0,0 +1,1731 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-11.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Turin + AMD + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + Bro= adwell-IBRS + + + + + + + Bro= adwell-noTSX + + + + + Bro= adwell-noTSX-IBRS + + + + + Broadwell-v1 + + + + + + + Broadwell-v2 + + + + + Broadwell-v3 + + + + + + + Broadwell-v4 + + + + + Cascadelake-Server + + + + + + + Cascadelake-Server-noTSX + + + + + + Cascadelake-Server-v1 + + + + + + + Cascadelake-Server-v2 + + + + + + + + Cascadelake-Server-v3 + + + + + + Cascadelake-Server-v4 + + + + + + Cascadelake-Server-v5 + + + + + + ClearwaterForest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ClearwaterForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + Cooperlake-v1 + + + + + + + + + Cooperlake-v2 + + + + + + + + + Den= verton + + + + + Denverton-v1 + + + + + Denverton-v2 + + + + Denverton-v3 + + + + Dhyana= + + + + Dhyana-v1 + + + + Dhyana-v2 + + + + DiamondRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DiamondRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC + + + + EPYC= -Genoa + + + + + + EPYC-Genoa-v1 + + + + + + EPYC-Genoa-v2 + + + + + + EPYC-IBPB<= /model> + + + + EPYC= -Milan + + + + + EPYC-Milan-v1 + + + + + EPYC-Milan-v2 + + + + + EPYC-Milan-v3 + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + EPYC-Rome-v3 + + + + EPYC-Rome-v4 + + + + EPYC-Rome-v5 + + + + EPYC= -Turin + + + + + + EPYC-Turin-v1 + + + + + + EPYC-v1 + + + + EPYC-v2 + + + + EPYC-v3 + + + + EPYC-v4 + + + + EPYC-v5 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + Haswe= ll-IBRS + + + + + + Haswe= ll-noTSX + + + + Haswe= ll-noTSX-IBRS + + + + Haswell-v1 + + + + + + Haswell-v2 + + + + Haswell-v3 + + + + + + Haswell-v4 + + + + Icelake-Server + + + + + + + + Icelake-Server-noTSX + + + + + + Icelake-Server-v1 + + + + + + + + Icelake-Server-v2 + + + + + + Icelake-Server-v3 + + + + + + + + Icelake-Server-v4 + + + + + + + + Icelake-Server-v5 + + + + + + + + Icelake-Server-v6 + + + + + + + + Icelake-Server-v7 + + + + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + + KnightsMill-v1 + + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + SierraForest-v2 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v3 + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + Skylake-Client-IBRS + + + + + + + Skylake-Client-noTSX-IBRS + + + + + Skylake-Client-v1 + + + + + + + Skylake-Client-v2 + + + + + + + Skylake-Client-v3 + + + + + Skylake-Client-v4 + + + + + Skylake-Server + + + + + + + Skylake-Server-IBRS + + + + + + + Skylake-Server-noTSX-IBRS + + + + + Skylake-Server-v1 + + + + + + + Skylake-Server-v2 + + + + + + + Skylake-Server-v3 + + + + + Skylake-Server-v4 + + + + + Skylake-Server-v5 + + + + + Sno= wridge + + + + + + + + Snowridge-v1 + + + + + + + + Snowridge-v2 + + + + + + + Snowridge-v3 + + + + + + + Snowridge-v4 + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + YongFeng + + + + + + + + + + + + + + + + YongFeng-v1 + + + + + + + + + + + + + + + + YongFeng-v2 + + + + + + + + + + + + + + + + YongFeng-v3 + + + + + + + + + + + + + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + tdx + + + + diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_7.2.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..8a84c50845 --- /dev/null +++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64-supported.xml @@ -0,0 +1,1181 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-7.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + Snowridge-v4 + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_8.0.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..871e87f765 --- /dev/null +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64-supported.xml @@ -0,0 +1,1290 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-8.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + Snowridge-v4 + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + off + off + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_8.1.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..73ff57638a --- /dev/null +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64-supported.xml @@ -0,0 +1,1548 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-8.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_8.2.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..b2752be989 --- /dev/null +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64-supported.xml @@ -0,0 +1,1550 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-8.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_9.0.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..823b462214 --- /dev/null +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64-supported.xml @@ -0,0 +1,1551 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.0 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_9.1.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..cda2c2b4ec --- /dev/null +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64-supported.xml @@ -0,0 +1,1687 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.1 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-supported.xm= l b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-supported.xml new file mode 100644 index 0000000000..84ffe5b18c --- /dev/null +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev-supported.xml @@ -0,0 +1,895 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Genoa + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + Bro= adwell-IBRS + + + + + Br= oadwell-noTSX + Br= oadwell-noTSX-IBRS + Broadwell-v1 + + + + + Broadwell-v2 + Broadwell-v3 + + + + + Broadwell-v4 + Cascadelake-Server + + + + + Cascadelake-Server-noTSX + + + + Cascadelake-Server-v1 + + + + + Cascadelake-Server-v2 + + + + + + Cascadelake-Server-v3 + + + + Cascadelake-Server-v4 + + + + Cascadelake-Server-v5 + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + Cooperlake-v1 + + + + + + + Cooperlake-v2 + + + + + + + Den= verton + + + + Denverton-v1 + + + + Denverton-v2 + Denverton-v3 + Dhyan= a + Dhyana-v1 + Dhyana-v2 + EPYC + EPY= C-Genoa + EPYC-Genoa-v1 + EPYC-IBPB= + EPY= C-Milan + EPYC-Milan-v1 + EPYC-Milan-v2 + EPYC= -Rome + EPYC-Rome-v1 + EPYC-Rome-v2 + EPYC-Rome-v3 + EPYC-Rome-v4 + EPYC-v1 + EPYC-v2 + EPYC-v3 + EPYC-v4 + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + Haswe= ll-IBRS + + + + + Hasw= ell-noTSX + Hasw= ell-noTSX-IBRS + Haswell-v1 + + + + + Haswell-v2 + Haswell-v3 + + + + + Haswell-v4 + Icelake-Server + + + + + Icelake-Server-noTSX + Icelake-Server-v1 + + + + + Icelake-Server-v2 + Icelake-Server-v3 + + + + + Icelake-Server-v4 + + + + + Icelake-Server-v5 + + + + + Icelake-Server-v6 + + + + + Icelake-Server-v7 + + + + + + + Iv= yBridge + Iv= yBridge-IBRS + IvyBridge-v1 + IvyBridge-v2 + K= nightsMill + + + + + + + + KnightsMill-v1 + + + + + + + + Neha= lem + Neha= lem-IBRS + Nehalem-v1 + Nehalem-v2 + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + = SandyBridge-IBRS + SandyBridge-v1 + SandyBridge-v2 + SapphireRapids + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + Skylake-Client + + + + + Skylake-Client-IBRS + + + + + Skylake-Client-noTSX-IBRS + Skylake-Client-v1 + + + + + Skylake-Client-v2 + + + + + Skylake-Client-v3 + Skylake-Client-v4 + Skylake-Server + + + + + Skylake-Server-IBRS + + + + + Skylake-Server-noTSX-IBRS + Skylake-Server-v1 + + + + + Skylake-Server-v2 + + + + + Skylake-Server-v3 + Skylake-Server-v4 + Skylake-Server-v5 + Sno= wridge + + + + + + + + + Snowridge-v1 + + + + + + + + + Snowridge-v2 + + + + + + + + Snowridge-v3 + + + + + + + + Snowridge-v4 + + + + + + Wes= tmere + Wes= tmere-IBRS + Westmere-v1 + Westmere-v2 + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + 51 + 1 + 59 + 450 + BlAwmcr4Ruya3YvEGe2EBxuWjMAfIYolslNNM92RsIKxLkWDDRqivqSBOD+q= QRCYS9joBYSHMD1g+rmjY+MmVw=3D=3D + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + sev + sev-snp + + + + diff --git a/tests/domaincapsdata/qemu_9.2.0-q35.x86_64-supported.xml b/tes= ts/domaincapsdata/qemu_9.2.0-q35.x86_64-supported.xml new file mode 100644 index 0000000000..853ea256be --- /dev/null +++ b/tests/domaincapsdata/qemu_9.2.0-q35.x86_64-supported.xml @@ -0,0 +1,1745 @@ + + /usr/bin/qemu-system-x86_64 + kvm + pc-q35-9.2 + x86_64 + + + + + bios + efi + + + + yes + no + + + yes + no + + + + /obviously/fake/firmware1.fd + /obviously/fake/firmware2.fd + + rom + pflash + + + yes + no + + + yes + no + + + + + + + + on + off + + + + + on + off + + + + EPYC-Rome + AMD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 486 + 486-v1 + Bro= adwell + + + + + + + + Bro= adwell-IBRS + + + + + + + + + Bro= adwell-noTSX + + + + + + Bro= adwell-noTSX-IBRS + + + + + + + Broadwell-v1 + + + + + + + + Broadwell-v2 + + + + + + Broadwell-v3 + + + + + + + + + Broadwell-v4 + + + + + + + Cascadelake-Server + + + + + + + + + + + + + + + + Cascadelake-Server-noTSX + + + + + + + + + + + + + + + Cascadelake-Server-v1 + + + + + + + + + + + + + + + + Cascadelake-Server-v2 + + + + + + + + + + + + + + + + + Cascadelake-Server-v3 + + + + + + + + + + + + + + + Cascadelake-Server-v4 + + + + + + + + + + + + + + + Cascadelake-Server-v5 + + + + + + + + + + + + + + + + Conro= e + Conroe-v1 + Co= operlake + + + + + + + + + + + + + + + + + + + Cooperlake-v1 + + + + + + + + + + + + + + + + + + + Cooperlake-v2 + + + + + + + + + + + + + + + + + + + + Den= verton + + + + + + Denverton-v1 + + + + + + Denverton-v2 + + + + + Denverton-v3 + + + + + + Dhyan= a + Dhyana-v1 + Dhyana-v2 + + + + EPYC + EPYC= -Genoa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-Genoa-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EPYC-IBPB= + EPYC= -Milan + + + + + + + + + + EPYC-Milan-v1 + + + + + + + + + + EPYC-Milan-v2 + + + + + + + + + + + + + + + EPYC-= Rome + + + + EPYC-Rome-v1 + + + + EPYC-Rome-v2 + + + + + EPYC-Rome-v3 + + + + + EPYC-Rome-v4 + + + + EPYC-v1 + EPYC-v2 + EPYC-v3 + + + + EPYC-v4 + + + + GraniteRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GraniteRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Haswe= ll + + + + + + + + Haswe= ll-IBRS + + + + + + + + + Haswe= ll-noTSX + + + + + + Haswe= ll-noTSX-IBRS + + + + + + + Haswell-v1 + + + + + + + + Haswell-v2 + + + + + + Haswell-v3 + + + + + + + + + Haswell-v4 + + + + + + + Icelake-Server + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-noTSX + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v1 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v2 + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v3 + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v4 + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v6 + + + + + + + + + + + + + + + + + + + + + + + + + + + Icelake-Server-v7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ivy= Bridge + + + + Ivy= Bridge-IBRS + + + + + IvyBridge-v1 + + + + IvyBridge-v2 + + + + + K= nightsMill + + + + + + + + + + + + KnightsMill-v1 + + + + + + + + + + + + Neha= lem + Nehal= em-IBRS + + + + Nehalem-v1 + Nehalem-v2 + + + + Opt= eron_G1 + Opteron_G1-v1 + Opt= eron_G2 + Opteron_G2-v1 + Opt= eron_G3 + Opteron_G3-v1 + Opte= ron_G4 + + + + + Opteron_G4-v1 + + + + + Opte= ron_G5 + + + + + + Opteron_G5-v1 + + + + + + Penry= n + Penryn-v1 + = SandyBridge + S= andyBridge-IBRS + + + + SandyBridge-v1 + SandyBridge-v2 + + + + SapphireRapids + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SapphireRapids-v3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = SierraForest + + + + + + + + + + + + + + + + + + + + + + + + + + + SierraForest-v1 + + + + + + + + + + + + + + + + + + + + + + + + + + + Skylake-Client + + + + + + + + Skylake-Client-IBRS + + + + + + + + + Skylake-Client-noTSX-IBRS + + + + + + + Skylake-Client-v1 + + + + + + + + Skylake-Client-v2 + + + + + + + + + Skylake-Client-v3 + + + + + + + Skylake-Client-v4 + + + + + + + + Skylake-Server + + + + + + + + + + + + + + Skylake-Server-IBRS + + + + + + + + + + + + + + + Skylake-Server-noTSX-IBRS + + + + + + + + + + + + + Skylake-Server-v1 + + + + + + + + + + + + + + Skylake-Server-v2 + + + + + + + + + + + + + + + Skylake-Server-v3 + + + + + + + + + + + + + Skylake-Server-v4 + + + + + + + + + + + + + Skylake-Server-v5 + + + + + + + + + + + + + + Sno= wridge + + + + + + + + + + + + Snowridge-v1 + + + + + + + + + + + + Snowridge-v2 + + + + + + + + + + + Snowridge-v3 + + + + + + + + + + + + Snowridge-v4 + + + + + + + + + + Wes= tmere + West= mere-IBRS + + + + Westmere-v1 + Westmere-v2 + + + + athlon + + + + + athlon-v1 + + + + + core= 2duo + + + + core2duo-v1 + + + + cored= uo + + + + coreduo-v1 + + + + kvm3= 2 + kvm32-v1 + kvm6= 4 + kvm64-v1 + n270 + + + + n270-v1 + + + + pe= ntium + pentium-v1 + p= entium2 + pentium2-v1 + p= entium3 + pentium3-v1 + phenom + + + + + phenom-v1 + + + + + qem= u32 + qemu32-v1 + qem= u64 + qemu64-v1 + + + + + file + anonymous + memfd + + + + + + disk + cdrom + floppy + lun + + + fdc + scsi + virtio + usb + sata + nvme + + + virtio + virtio-transitional + virtio-non-transitional + + + + + sdl + vnc + rdp + spice + egl-headless + dbus + + + + + + subsystem + + + default + mandatory + requisite + optional + + + usb + pci + scsi + + + + default + vfio + + + yes + no + + + + + virtio + virtio-transitional + virtio-non-transitional + + + random + egd + builtin + + + + + path + virtiofs + + + + + tpm-tis + tpm-crb + + + passthrough + emulator + external + + + 2.0 + + + + + usb + + + + + pty + unix + spicevmc + + + + + virtio + + + qemu + + + builtin + lkcf + + + + + default + passt + + + + + isa + hyperv + pvpanic + + + + + null + vc + pty + dev + file + pipe + stdio + udp + tcp + unix + spicevmc + spiceport + qemu-vdagent + dbus + + + + + + + + + + + + + + + + + + relaxed + vapic + spinlocks + vpindex + runtime + synic + stimer + reset + vendor_id + frequencies + reenlightenment + tlbflush + ipi + avic + emsr_bitmap + xmm_input + + + 4095 + on + on + on + Linux KVM Hv + + + + + diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index 9bbba6e89c..ed0210678f 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -289,6 +289,8 @@ doTestQemuInternal(const char *version, =20 if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) flag =3D "-expanded"; + else if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEA= TURES) + flag =3D "-supported"; else flag =3D ""; =20 @@ -360,6 +362,12 @@ doTestQemu(const char *inputDir G_GNUC_UNUSED, VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXP= AND_CPU_FEATURES, opaque) < 0) ret =3D -1; + + if (doTestQemuInternal(version, "q35", arch, variant, + VIR_DOMAIN_VIRT_KVM, + VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUP= PORTED_CPU_FEATURES, + opaque) < 0) + ret =3D -1; } =20 if (doTestQemuInternal(version, NULL, arch, variant, --=20 2.54.0 From nobody Sat May 30 15:28:33 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1780065539; cv=none; d=zohomail.com; s=zohoarc; b=U5mdjKTc6XAjQhAO1BRMVZi6bddzWiCh4wkyvotTEFa3ZTP4mzDHVN3QmQr/bDQgJlNUmiulyXO5mtxAEQ7WtQ1EDqslHNbtLerp7hDR2amYD3YjOphCoK/R77NgPMKTi0XqNtEMYHtsif/Sy5P5LIOMoEfu+z0EZKtYOcrYefc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1780065539; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=F3oh3qf3kFWFZE2ynVXN13mGsZZFvITCVmpUoOCYvyw=; b=NeISoXfpDvcqKyN1XUEIO4OcST6IM3Lo2xOEgcVhMh50p0z6LCrpP6sKd+tdupv+n0rkRflZ3ciEK7sSa1Zw8L9LroKe/02jJYiD4iX/mX1IK6fp+bLXOD46Ml7Yz0Be4DgAszZnNNWhDkEK9ws+wc7Plo6vDC+NkgxvoE5gEOg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1780065539397539.2951011438947; Fri, 29 May 2026 07:38:59 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id AA13041B7E; Fri, 29 May 2026 10:38:34 -0400 (EDT) Received: from [172.19.199.4] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 06CE143E99; Fri, 29 May 2026 10:18:38 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id C626341AC5; Fri, 29 May 2026 10:18:30 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 2935A41A09 for ; Fri, 29 May 2026 10:13:13 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-694-mQzyFWfmMeynRSeQUv6zeA-1; Fri, 29 May 2026 10:13:10 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DB25D1800627 for ; Fri, 29 May 2026 14:13:09 +0000 (UTC) Received: from orkuz (unknown [10.44.48.49]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 402561800465 for ; Fri, 29 May 2026 14:13:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1780063992; h=from:from: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; bh=F3oh3qf3kFWFZE2ynVXN13mGsZZFvITCVmpUoOCYvyw=; b=EMCxj99otjOOhVdvninfHGR0+1jzcA/q2apZT/yR2DzqhCRI4E2xrFjc2xduBYELuDhJFO LpHBEMYsYNd9n+QAeod3l8Y2t3U+rib7w8P9DWwsPv4Zo5in+JAqb//81ImhwNe0HUxyXu d1YCOSnLHTYKUVtHHFIXmarsVgMWFaU= X-MC-Unique: mQzyFWfmMeynRSeQUv6zeA-1 X-Mimecast-MFC-AGG-ID: mQzyFWfmMeynRSeQUv6zeA_1780063990 To: devel@lists.libvirt.org Subject: [PATCH v2 16/16] qemu_capabilities: Fix domain capabilities on AMD CPUs Date: Fri, 29 May 2026 16:12:21 +0200 Message-ID: <910c6b9b3ef7510a8d360bda839cee6ce707f351.1780063806.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: yLNVlmJp0-zv2WkqqLTYACjxOdzy3lwwQAfDtTIViUg_1780063990 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TYXJ72NJ2W7FHR6DHV7QQ5VJOPOU7VOT X-Message-ID-Hash: TYXJ72NJ2W7FHR6DHV7QQ5VJOPOU7VOT X-MailFrom: jdenemar@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jiri Denemark via Devel Reply-To: Jiri Denemark X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1780065542657154100 Content-Type: text/plain; charset="utf-8" From: Jiri Denemark The arch-capabilities MSR is not defined on AMD CPUs, but KVM has always been emulating them. Unfortunately, this may cause Windows to crash so QEMU (since 10.1, commit d3a24134e37d57abd3e7445842cda2717f49e96d) decided to mask the MSR by default with some additional compatibility code for older machine types. This is all mostly transparent except for probing when we run QEMU without a machine type and expand the "host" CPU model. With QEMU 10.1 and newer none of the arch-capabilities features will be shown as enabled, which may cause unexpected issues for users (such as KubeVirt) that get the list of all supported features from the host-model CPU definition in domain capabilities to select possible target nodes for migration. As a result of the change, no AMD host with new QEMU will be shown as available for incoming migration from older hosts. Since the features are supported on the host (it's possible to explicitly enable them), but they should not be enabled by default in host-model CPU, we only add the to domain capabilities when VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag is set. Signed-off-by: Jiri Denemark --- Notes: Version 2: - the features from arch-capabilities MSR are added only when the new VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES flag is set (previously they were enabled for *_EXPAND_CPU_FEATURES) - the functionality is tested so the appropriate tests are affected by this change src/qemu/qemu_capabilities.c | 24 +++++++++++++++++++ src/qemu/qemu_driver.c | 3 ++- .../qemu_10.1.0-q35.x86_64-supported.xml | 7 ++++++ .../qemu_10.2.0-q35.x86_64-supported.xml | 7 ++++++ .../qemu_11.0.0-q35.x86_64+sgx-supported.xml | 7 ++++++ .../qemu_11.0.0-q35.x86_64-supported.xml | 7 ++++++ 6 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 54cf0d624b..1c89c0a1de 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6657,6 +6657,7 @@ virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuCa= ps, { virQEMUCapsHostCPUType cpuType; virCPUDef *cpu; + virArch arch =3D domCaps->arch; =20 if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES) cpuType =3D VIR_QEMU_CAPS_HOST_CPU_EXPANDED; @@ -6673,6 +6674,29 @@ virQEMUCapsFillDomainCPUHostModel(virQEMUCaps *qemuC= aps, cpu, VIR_CPU_FEATURE_DISABL= E); } =20 + if (flags & VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATURES= ) { + uint32_t index =3D 0x10a; /* arch-capabilities MSR */ + uint64_t msr =3D 0; + + /* While the arch-capabilities MSR is not defined on AMD CPUs, KVM= has + * always been emulating them. Unfortunately, this may cause some + * Windows version to crash so QEMU decided to mask the MSR by def= ault. + * When asked for all CPU features supported on a host we need to = add + * the affected features to the host-model. + */ + if (ARCH_IS_X86(arch) && + STREQ_NULLABLE(cpu->vendor, "AMD") && + virCPUCheckFeature(arch, cpu, "arch-capabilities") =3D=3D 0 && + virHostCPUGetMSRFromKVM(index, &msr) =3D=3D 0) { + g_autoptr(virCPUData) data =3D virCPUDataNew(arch); + virCPUFeaturePolicy policy =3D VIR_CPU_FEATURE_REQUIRE; + + virCPUx86DataAddMSR(data, index, msr); + virCPUUpdateFeatures(arch, cpu, data, policy); + virCPUDefUpdateFeature(cpu, "arch-capabilities", policy); + } + } + virCPUDefSortFeatures(cpu); domCaps->cpu.hostModel =3D cpu; } diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c351ce40af..25f02d2cd6 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -16965,7 +16965,8 @@ qemuConnectGetDomainCapabilities(virConnectPtr conn, g_autoptr(virDomainCaps) domCaps =3D NULL; =20 virCheckFlags(VIR_CONNECT_GET_DOMAIN_CAPABILITIES_DISABLE_DEPRECATED_F= EATURES | - VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES, + VIR_CONNECT_GET_DOMAIN_CAPABILITIES_EXPAND_CPU_FEATURES | + VIR_CONNECT_GET_DOMAIN_CAPABILITIES_SUPPORTED_CPU_FEATUR= ES, NULL); =20 if (virConnectGetDomainCapabilitiesEnsureACL(conn) < 0) diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml index 14beb4b11a..b235e8cc24 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64-supported.xml @@ -56,17 +56,24 @@ AMD + + + + + + + diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml index 7a89f10f8d..9bd3acc08d 100644 --- a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64-supported.xml @@ -55,13 +55,20 @@ EPYC-Turin AMD + + + + + + + diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml = b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml index b4a1291d2e..ae04d83652 100644 --- a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64+sgx-supported.xml @@ -55,14 +55,21 @@ EPYC-Turin AMD + + + + + + + diff --git a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml b/te= sts/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml index e529e0ccee..226afa0fee 100644 --- a/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml +++ b/tests/domaincapsdata/qemu_11.0.0-q35.x86_64-supported.xml @@ -55,14 +55,21 @@ EPYC-Turin AMD + + + + + + + --=20 2.54.0