From nobody Sat Nov 23 16:18:27 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; 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 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1723730341762738.0800346475309; Thu, 15 Aug 2024 06:59:01 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id A320815B8; Thu, 15 Aug 2024 09:59:00 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id C540E15A2; Thu, 15 Aug 2024 09:57:49 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id BE530CA8; Thu, 15 Aug 2024 09:57:44 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A3DEB11AD for ; Thu, 15 Aug 2024 09:57:43 -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-623-a5GpoD0PM6qbwl92fThZXA-1; Thu, 15 Aug 2024 09:57:41 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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 900EE1954126 for ; Thu, 15 Aug 2024 13:57:40 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.39]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id A0D9319560A3; Thu, 15 Aug 2024 13:57:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1723730263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yaN8v2PAjUySvLJCv2OeUnLTQcBwoh2ThzAjgzEa95g=; b=QoChfnxW97FNbO4oHcVpjBiCofKn27E3K71UI4U2yES7AvjaYqHSmPyfNcoBW5Gm+1KItR xmE3OUk9AMWUuqKWYxUzLDpnWo0JWSWMRkYTsKD3yAsxqg14G3rc3+hQrKOPiSPKYrAhAT T4/ziE7X6LOO6LMu7ktKGn7MxkjD8Po= X-MC-Unique: a5GpoD0PM6qbwl92fThZXA-1 From: Tim Wiederhake To: devel@lists.libvirt.org Subject: [PATCH 1/2] hyperv: Support hv-emsr-bitmap enlightenment Date: Thu, 15 Aug 2024 15:57:35 +0200 Message-ID: <20240815135736.19293-2-twiederh@redhat.com> In-Reply-To: <20240815135736.19293-1-twiederh@redhat.com> References: <20240815135736.19293-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: VDXIZICZDXVL7ZCH657TWMCLUSH3RWS4 X-Message-ID-Hash: VDXIZICZDXVL7ZCH657TWMCLUSH3RWS4 X-MailFrom: twiederh@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Tim Wiederhake X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1723730342675116600 Content-Type: text/plain; charset="utf-8"; x-default="true" qemu supports this enlightenment since version 7.10. From the qemu commit: The newly introduced enlightenment allow L0 (KVM) and L1 (Hyper-V) hypervisors to collaborate to avoid unnecessary updates to L2 MSR-Bitmap upon vmexits. Signed-off-by: Tim Wiederhake Reviewed-by: Martin Kletzander --- docs/formatdomain.rst | 2 ++ src/conf/domain_conf.c | 4 ++++ src/conf/domain_conf.h | 1 + src/conf/schemas/domaincommon.rng | 5 +++++ src/cpu/cpu_x86.c | 4 ++++ src/cpu/cpu_x86_data.h | 1 + src/qemu/qemu_command.c | 5 +++++ src/qemu/qemu_process.c | 1 + tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml | 1 + tests/qemuxmlconfdata/hyperv-off.xml | 1 + tests/qemuxmlconfdata/hyperv.x86_64-latest.args | 2 +- tests/qemuxmlconfdata/hyperv.x86_64-latest.xml | 1 + tests/qemuxmlconfdata/hyperv.xml | 1 + 33 files changed, 48 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index e1e219bcb5..0cf3dc9deb 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -1989,6 +1989,7 @@ Hypervisors may allow certain CPU / machine features = to be toggled on/off. + @@ -2076,6 +2077,7 @@ are: ipi Enable PV IPI support = on, off :since:`4.10.0= (QEMU 3.1)` evmcs Enable Enlightened VMCS = on, off :since:`4.10.0= (QEMU 3.1)` avic Enable use Hyper-V SynIC with hardware APICv/AVIC = on, off :since:`8.10.0= (QEMU 6.2)` + emsr_bitmap Avoid unnecessary updates to L2 MSR Bitmap upon vmexits= . on, off :since:`10.7.0= (QEMU 7.1)` =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 :since:`Since 8.0.0`, the hypervisor can be configured further by setti= ng diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d950921667..c88e885d07 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -211,6 +211,7 @@ VIR_ENUM_IMPL(virDomainHyperv, "ipi", "evmcs", "avic", + "emsr_bitmap", ); =20 VIR_ENUM_IMPL(virDomainKVM, @@ -16574,6 +16575,7 @@ virDomainFeaturesHyperVDefParse(virDomainDef *def, case VIR_DOMAIN_HYPERV_IPI: case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: + case VIR_DOMAIN_HYPERV_EMSR_BITMAP: break; =20 case VIR_DOMAIN_HYPERV_STIMER: @@ -21020,6 +21022,7 @@ virDomainDefFeaturesCheckABIStability(virDomainDef = *src, case VIR_DOMAIN_HYPERV_IPI: case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: + case VIR_DOMAIN_HYPERV_EMSR_BITMAP: if (src->hyperv_features[i] !=3D dst->hyperv_features[i]) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("State of HyperV enlightenment featur= e '%1$s' differs: source: '%2$s', destination: '%3$s'"), @@ -27761,6 +27764,7 @@ virDomainDefFormatFeatures(virBuffer *buf, case VIR_DOMAIN_HYPERV_IPI: case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: + case VIR_DOMAIN_HYPERV_EMSR_BITMAP: virBufferAddLit(&childBuf, "/>\n"); break; =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index eae621f900..332bcd0cf9 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2203,6 +2203,7 @@ typedef enum { VIR_DOMAIN_HYPERV_IPI, VIR_DOMAIN_HYPERV_EVMCS, VIR_DOMAIN_HYPERV_AVIC, + VIR_DOMAIN_HYPERV_EMSR_BITMAP, =20 VIR_DOMAIN_HYPERV_LAST } virDomainHyperv; diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 05ba697924..6f81fc94c2 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -7962,6 +7962,11 @@ + + + + + diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index fcbce0ec46..139ac48234 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -107,6 +107,9 @@ KVM_FEATURE_DEF(VIR_CPU_x86_HV_IPI, KVM_FEATURE_DEF(VIR_CPU_x86_HV_EVMCS, 0x40000004, 0x00004000, 0x0); =20 +KVM_FEATURE_DEF(VIR_CPU_x86_HV_EMSR_BITMAP, + 0x4000000A, 0x00080000, 0x0); + static virCPUx86Feature x86_kvm_features[] =3D { KVM_FEATURE(VIR_CPU_x86_KVM_PV_UNHALT), @@ -124,6 +127,7 @@ static virCPUx86Feature x86_kvm_features[] =3D KVM_FEATURE(VIR_CPU_x86_HV_IPI), KVM_FEATURE(VIR_CPU_x86_HV_EVMCS), KVM_FEATURE(VIR_CPU_x86_HV_STIMER_DIRECT), + KVM_FEATURE(VIR_CPU_x86_HV_EMSR_BITMAP), }; =20 typedef struct _virCPUx86Signature virCPUx86Signature; diff --git a/src/cpu/cpu_x86_data.h b/src/cpu/cpu_x86_data.h index d1ca63db6d..414643fe8d 100644 --- a/src/cpu/cpu_x86_data.h +++ b/src/cpu/cpu_x86_data.h @@ -62,6 +62,7 @@ struct _virCPUx86MSR { #define VIR_CPU_x86_HV_IPI "hv-ipi" #define VIR_CPU_x86_HV_EVMCS "hv-evmcs" #define VIR_CPU_x86_HV_AVIC "hv-avic" +#define VIR_CPU_x86_HV_EMSR_BITMAP "hv-emsr_bitmap" =20 /* Hyper-V Synthetic Timer option */ #define VIR_CPU_x86_HV_STIMER_DIRECT "hv-stimer-direct" diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 28914c9c34..cac6fc57a5 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6523,6 +6523,11 @@ qemuBuildCpuCommandLine(virCommand *cmd, def->hyperv_vendor_id); break; =20 + case VIR_DOMAIN_HYPERV_EMSR_BITMAP: + if (def->hyperv_features[i] =3D=3D VIR_TRISTATE_SWITCH_ON) + virBufferAsprintf(&buf, ",%s=3Don", "hv-emsr-bitmap"); + break; + case VIR_DOMAIN_HYPERV_LAST: break; } diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index a69878e8bb..4a2e3b11fd 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4304,6 +4304,7 @@ qemuProcessVerifyHypervFeatures(virDomainDef *def, case VIR_DOMAIN_HYPERV_IPI: case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: + case VIR_DOMAIN_HYPERV_EMSR_BITMAP: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("host doesn't support hyperv '%1$s' feature"), virDomainHypervTypeToString(i)); 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 8eda04948f..1dfbf98248 100644 --- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml @@ -285,6 +285,7 @@ tlbflush ipi avic + emsr_bitmap 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 c2d537b520..516eade95b 100644 --- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml @@ -287,6 +287,7 @@ tlbflush ipi avic + emsr_bitmap diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.0.0.x86_64.xml index 7167406453..96cfc5776e 100644 --- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml @@ -285,6 +285,7 @@ tlbflush ipi avic + emsr_bitmap 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 bac0b06683..5bb1299fb1 100644 --- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml @@ -288,6 +288,7 @@ tlbflush ipi avic + emsr_bitmap 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 6c455f7ab9..743a6e728b 100644 --- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml @@ -289,6 +289,7 @@ tlbflush ipi avic + emsr_bitmap diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.1.0.x86_64.xml index f103da3010..fa635fd12b 100644 --- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml @@ -288,6 +288,7 @@ tlbflush ipi avic + emsr_bitmap 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 784c44219c..6c394ba3c4 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -290,6 +290,7 @@ tlbflush ipi avic + emsr_bitmap 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 4be710044d..7ebd3ced3a 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml @@ -289,6 +289,7 @@ tlbflush ipi avic + emsr_bitmap diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.2.0.x86_64.xml index 2cdf516964..1db706ef7e 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -290,6 +290,7 @@ tlbflush ipi avic + emsr_bitmap 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 670314ba3e..4fb0ebc45f 100644 --- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml @@ -290,6 +290,7 @@ tlbflush ipi avic + emsr_bitmap 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 13afe99cdb..43ff5c3d9f 100644 --- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml @@ -291,6 +291,7 @@ tlbflush ipi avic + emsr_bitmap diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.0.0.x86_64.xml index 71c05e0e97..86edbec0dd 100644 --- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml @@ -290,6 +290,7 @@ tlbflush ipi avic + emsr_bitmap 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 5ca6d0fdac..c9bf0139b5 100644 --- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml @@ -294,6 +294,7 @@ tlbflush ipi avic + emsr_bitmap 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 133ee4d723..288047b38b 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml @@ -290,6 +290,7 @@ tlbflush ipi avic + emsr_bitmap diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.1.0.x86_64.xml index f378000c2b..4cae2f73cc 100644 --- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml @@ -294,6 +294,7 @@ tlbflush ipi avic + emsr_bitmap diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.0.0_x86_64.xml index d3901fef05..2c9c2ebbbb 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -3455,5 +3455,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.1.0_x86_64.xml index f8a9993ede..6a87c1d9cc 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -3784,5 +3784,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_x86_64.xml index 43d7105c2d..6713905b2f 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -3758,5 +3758,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index e96af86a92..520a2f95ee 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -3693,5 +3693,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.1.0_x86_64.xml index c3cb6efc61..f5db55dc86 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -3949,5 +3949,6 @@ + diff --git a/tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml b/tests/qem= uxmlconfdata/hyperv-off.x86_64-latest.xml index 5805fea7b7..2b5f3537a8 100644 --- a/tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml @@ -25,6 +25,7 @@ + diff --git a/tests/qemuxmlconfdata/hyperv-off.xml b/tests/qemuxmlconfdata/h= yperv-off.xml index 1e7e632b1c..f760a9676b 100644 --- a/tests/qemuxmlconfdata/hyperv-off.xml +++ b/tests/qemuxmlconfdata/hyperv-off.xml @@ -25,6 +25,7 @@ + diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args b/tests/qemuxm= lconfdata/hyperv.x86_64-latest.args index 8f0a02230c..5046ec6ea0 100644 --- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGue= st1/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ -machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram,acpi= =3Don \ -accel tcg \ --cpu 'qemu64,hv-relaxed=3Don,hv-vapic=3Don,hv-spinlocks=3D0x2fff,hv-vpinde= x=3Don,hv-runtime=3Don,hv-synic=3Don,hv-stimer=3Don,hv-reset=3Don,hv-vendor= -id=3DKVM Hv,hv-frequencies=3Don,hv-reenlightenment=3Don,hv-tlbflush=3Don,h= v-ipi=3Don,hv-evmcs=3Don,hv-avic=3Don' \ +-cpu 'qemu64,hv-relaxed=3Don,hv-vapic=3Don,hv-spinlocks=3D0x2fff,hv-vpinde= x=3Don,hv-runtime=3Don,hv-synic=3Don,hv-stimer=3Don,hv-reset=3Don,hv-vendor= -id=3DKVM Hv,hv-frequencies=3Don,hv-reenlightenment=3Don,hv-tlbflush=3Don,h= v-ipi=3Don,hv-evmcs=3Don,hv-avic=3Don,hv-emsr-bitmap=3Don' \ -m size=3D219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ -overcommit mem-lock=3Doff \ diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml b/tests/qemuxml= confdata/hyperv.x86_64-latest.xml index 4828177263..d5cb27bf1d 100644 --- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml @@ -26,6 +26,7 @@ + diff --git a/tests/qemuxmlconfdata/hyperv.xml b/tests/qemuxmlconfdata/hyper= v.xml index dde091aa9a..db520e2074 100644 --- a/tests/qemuxmlconfdata/hyperv.xml +++ b/tests/qemuxmlconfdata/hyperv.xml @@ -26,6 +26,7 @@ + --=20 2.43.0 From nobody Sat Nov 23 16:18:27 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; 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 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1723730396493424.94783087705787; Thu, 15 Aug 2024 06:59:56 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 706451377; Thu, 15 Aug 2024 09:59:55 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 0AD711380; Thu, 15 Aug 2024 09:57:53 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 2E96E11AD; Thu, 15 Aug 2024 09:57:46 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E02EACA8 for ; Thu, 15 Aug 2024 09:57:44 -0400 (EDT) Received: from mx-prod-mc-04.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-226-I3s1rU4jPL2Xn8kcsvo3jg-1; Thu, 15 Aug 2024 09:57:42 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (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-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 20E9F1955D4B for ; Thu, 15 Aug 2024 13:57:42 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.39]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0610819560A3; Thu, 15 Aug 2024 13:57:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1723730264; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ISdGcpw1KGbUTzDrEMzKtdk+PEzVGLXnI+LIqfxKXWQ=; b=NyeLpy1one6dnukLVHH6UkoZiNtNNixpXSkLlv6i+XZB9bF7n/ZEolyStd2e5yOJb9j0l+ Cenzu0xGrQODv6xWBWIjRkfpbvJLEJHwm8E+IYz/xopjGsOwXISkQ9PN0FMS2BxnIZ2JlN N7HdI770LrrFO0WiAdhCiZabVDt10fE= X-MC-Unique: I3s1rU4jPL2Xn8kcsvo3jg-1 From: Tim Wiederhake To: devel@lists.libvirt.org Subject: [PATCH 2/2] hyperv: Support hv-xmm-input enlightenment Date: Thu, 15 Aug 2024 15:57:36 +0200 Message-ID: <20240815135736.19293-3-twiederh@redhat.com> In-Reply-To: <20240815135736.19293-1-twiederh@redhat.com> References: <20240815135736.19293-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: F2ZNINBYZ4ODWSMDRCMTQUQBDISKC3UJ X-Message-ID-Hash: F2ZNINBYZ4ODWSMDRCMTQUQBDISKC3UJ X-MailFrom: twiederh@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Tim Wiederhake X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1723730396823116600 Content-Type: text/plain; charset="utf-8"; x-default="true" qemu supports this enlightenment since version 7.10. From the qemu commit: Hyper-V specification allows to pass parameters for certain hypercalls using XMM registers ("XMM Fast Hypercall Input"). When the feature is in use, it allows for faster hypercalls processing as KVM can avoid reading guest's memory. Signed-off-by: Tim Wiederhake --- docs/formatdomain.rst | 2 ++ src/conf/domain_conf.c | 4 ++++ src/conf/domain_conf.h | 1 + src/conf/schemas/domaincommon.rng | 5 +++++ src/cpu/cpu_x86.c | 4 +++- src/cpu/cpu_x86_data.h | 1 + src/qemu/qemu_command.c | 5 +++++ src/qemu/qemu_process.c | 1 + tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml | 1 + tests/qemuxmlconfdata/hyperv-off.xml | 1 + tests/qemuxmlconfdata/hyperv.x86_64-latest.args | 2 +- tests/qemuxmlconfdata/hyperv.x86_64-latest.xml | 1 + tests/qemuxmlconfdata/hyperv.xml | 1 + 33 files changed, 47 insertions(+), 2 deletions(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 0cf3dc9deb..e38ff9ec4d 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -1990,6 +1990,7 @@ Hypervisors may allow certain CPU / machine features = to be toggled on/off. + @@ -2078,6 +2079,7 @@ are: evmcs Enable Enlightened VMCS = on, off :since:`4.10.0= (QEMU 3.1)` avic Enable use Hyper-V SynIC with hardware APICv/AVIC = on, off :since:`8.10.0= (QEMU 6.2)` emsr_bitmap Avoid unnecessary updates to L2 MSR Bitmap upon vmexits= . on, off :since:`10.7.0= (QEMU 7.1)` + xmm_input Enable XMM Fast Hypercall Input = on, off :since:`10.7.0= (QEMU 7.1)` =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 :since:`Since 8.0.0`, the hypervisor can be configured further by setti= ng diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index c88e885d07..9647b89391 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -212,6 +212,7 @@ VIR_ENUM_IMPL(virDomainHyperv, "evmcs", "avic", "emsr_bitmap", + "xmm_input", ); =20 VIR_ENUM_IMPL(virDomainKVM, @@ -16576,6 +16577,7 @@ virDomainFeaturesHyperVDefParse(virDomainDef *def, case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: + case VIR_DOMAIN_HYPERV_XMM_INPUT: break; =20 case VIR_DOMAIN_HYPERV_STIMER: @@ -21023,6 +21025,7 @@ virDomainDefFeaturesCheckABIStability(virDomainDef = *src, case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: + case VIR_DOMAIN_HYPERV_XMM_INPUT: if (src->hyperv_features[i] !=3D dst->hyperv_features[i]) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("State of HyperV enlightenment featur= e '%1$s' differs: source: '%2$s', destination: '%3$s'"), @@ -27765,6 +27768,7 @@ virDomainDefFormatFeatures(virBuffer *buf, case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: + case VIR_DOMAIN_HYPERV_XMM_INPUT: virBufferAddLit(&childBuf, "/>\n"); break; =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 332bcd0cf9..631edaf217 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2204,6 +2204,7 @@ typedef enum { VIR_DOMAIN_HYPERV_EVMCS, VIR_DOMAIN_HYPERV_AVIC, VIR_DOMAIN_HYPERV_EMSR_BITMAP, + VIR_DOMAIN_HYPERV_XMM_INPUT, =20 VIR_DOMAIN_HYPERV_LAST } virDomainHyperv; diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 6f81fc94c2..e207c112be 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -7967,6 +7967,11 @@ + + + + + diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 139ac48234..7cf158e25b 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -82,6 +82,8 @@ KVM_FEATURE_DEF(VIR_CPU_x86_HV_SYNIC, 0x40000003, 0x00000004, 0x0); KVM_FEATURE_DEF(VIR_CPU_x86_HV_STIMER, 0x40000003, 0x00000008, 0x0); +KVM_FEATURE_DEF(VIR_CPU_x86_HV_XMM_INPUT, + 0x40000003, 0x00000010, 0x0); KVM_FEATURE_DEF(VIR_CPU_x86_HV_RELAXED, 0x40000003, 0x00000020, 0x0); KVM_FEATURE_DEF(VIR_CPU_x86_HV_VAPIC, @@ -109,13 +111,13 @@ KVM_FEATURE_DEF(VIR_CPU_x86_HV_EVMCS, =20 KVM_FEATURE_DEF(VIR_CPU_x86_HV_EMSR_BITMAP, 0x4000000A, 0x00080000, 0x0); - static virCPUx86Feature x86_kvm_features[] =3D { KVM_FEATURE(VIR_CPU_x86_KVM_PV_UNHALT), KVM_FEATURE(VIR_CPU_x86_HV_RUNTIME), KVM_FEATURE(VIR_CPU_x86_HV_SYNIC), KVM_FEATURE(VIR_CPU_x86_HV_STIMER), + KVM_FEATURE(VIR_CPU_x86_HV_XMM_INPUT), KVM_FEATURE(VIR_CPU_x86_HV_RELAXED), KVM_FEATURE(VIR_CPU_x86_HV_VAPIC), KVM_FEATURE(VIR_CPU_x86_HV_VPINDEX), diff --git a/src/cpu/cpu_x86_data.h b/src/cpu/cpu_x86_data.h index 414643fe8d..43ad2faeb1 100644 --- a/src/cpu/cpu_x86_data.h +++ b/src/cpu/cpu_x86_data.h @@ -51,6 +51,7 @@ struct _virCPUx86MSR { #define VIR_CPU_x86_HV_RUNTIME "hv-runtime" #define VIR_CPU_x86_HV_SYNIC "hv-synic" #define VIR_CPU_x86_HV_STIMER "hv-stimer" +#define VIR_CPU_x86_HV_XMM_INPUT "hv-xmm_input" #define VIR_CPU_x86_HV_RELAXED "hv-relaxed" #define VIR_CPU_x86_HV_SPINLOCKS "hv-spinlocks" #define VIR_CPU_x86_HV_VAPIC "hv-vapic" diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index cac6fc57a5..a0f2c0a946 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6528,6 +6528,11 @@ qemuBuildCpuCommandLine(virCommand *cmd, virBufferAsprintf(&buf, ",%s=3Don", "hv-emsr-bitmap"); break; =20 + case VIR_DOMAIN_HYPERV_XMM_INPUT: + if (def->hyperv_features[i] =3D=3D VIR_TRISTATE_SWITCH_ON) + virBufferAsprintf(&buf, ",%s=3Don", "hv-xmm-input"); + break; + case VIR_DOMAIN_HYPERV_LAST: break; } diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 4a2e3b11fd..3de9ad6984 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -4305,6 +4305,7 @@ qemuProcessVerifyHypervFeatures(virDomainDef *def, case VIR_DOMAIN_HYPERV_EVMCS: case VIR_DOMAIN_HYPERV_AVIC: case VIR_DOMAIN_HYPERV_EMSR_BITMAP: + case VIR_DOMAIN_HYPERV_XMM_INPUT: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("host doesn't support hyperv '%1$s' feature"), virDomainHypervTypeToString(i)); 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 1dfbf98248..aa7f0c877c 100644 --- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml @@ -286,6 +286,7 @@ ipi avic emsr_bitmap + xmm_input 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 516eade95b..9892e2d657 100644 --- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml @@ -288,6 +288,7 @@ ipi avic emsr_bitmap + xmm_input diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.0.0.x86_64.xml index 96cfc5776e..9c9e8682e3 100644 --- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml @@ -286,6 +286,7 @@ ipi avic emsr_bitmap + xmm_input 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 5bb1299fb1..57f20132fa 100644 --- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml @@ -289,6 +289,7 @@ ipi avic emsr_bitmap + xmm_input 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 743a6e728b..5dbe6e0b81 100644 --- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml @@ -290,6 +290,7 @@ ipi avic emsr_bitmap + xmm_input diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.1.0.x86_64.xml index fa635fd12b..4156a476cd 100644 --- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml @@ -289,6 +289,7 @@ ipi avic emsr_bitmap + xmm_input 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 6c394ba3c4..65987be79b 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -291,6 +291,7 @@ ipi avic emsr_bitmap + xmm_input 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 7ebd3ced3a..9ba857f660 100644 --- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml @@ -290,6 +290,7 @@ ipi avic emsr_bitmap + xmm_input diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_8.2.0.x86_64.xml index 1db706ef7e..01729e231e 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -291,6 +291,7 @@ ipi avic emsr_bitmap + xmm_input 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 4fb0ebc45f..78b0e91171 100644 --- a/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-q35.x86_64.xml @@ -291,6 +291,7 @@ ipi avic emsr_bitmap + xmm_input 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 43ff5c3d9f..88e2788cef 100644 --- a/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0-tcg.x86_64.xml @@ -292,6 +292,7 @@ ipi avic emsr_bitmap + xmm_input diff --git a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.0.0.x86_64.xml index 86edbec0dd..37b12be0b7 100644 --- a/tests/domaincapsdata/qemu_9.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.0.0.x86_64.xml @@ -291,6 +291,7 @@ ipi avic emsr_bitmap + xmm_input 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 c9bf0139b5..08e4311c22 100644 --- a/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-q35.x86_64.xml @@ -295,6 +295,7 @@ ipi avic emsr_bitmap + xmm_input 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 288047b38b..72bd641b6e 100644 --- a/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0-tcg.x86_64.xml @@ -291,6 +291,7 @@ ipi avic emsr_bitmap + xmm_input diff --git a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_9.1.0.x86_64.xml index 4cae2f73cc..d074a260b6 100644 --- a/tests/domaincapsdata/qemu_9.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_9.1.0.x86_64.xml @@ -295,6 +295,7 @@ ipi avic emsr_bitmap + xmm_input diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.0.0_x86_64.xml index 2c9c2ebbbb..a59e18d5c8 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -3456,5 +3456,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.1.0_x86_64.xml index 6a87c1d9cc..d4d0751a96 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -3785,5 +3785,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_x86_64.xml index 6713905b2f..490270b8ca 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -3759,5 +3759,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index 520a2f95ee..52782de1b8 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -3694,5 +3694,6 @@ + diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.1.0_x86_64.xml index f5db55dc86..d0454924cf 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -3950,5 +3950,6 @@ + diff --git a/tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml b/tests/qem= uxmlconfdata/hyperv-off.x86_64-latest.xml index 2b5f3537a8..29f2da03f1 100644 --- a/tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/hyperv-off.x86_64-latest.xml @@ -26,6 +26,7 @@ + diff --git a/tests/qemuxmlconfdata/hyperv-off.xml b/tests/qemuxmlconfdata/h= yperv-off.xml index f760a9676b..bec8780eea 100644 --- a/tests/qemuxmlconfdata/hyperv-off.xml +++ b/tests/qemuxmlconfdata/hyperv-off.xml @@ -26,6 +26,7 @@ + diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args b/tests/qemuxm= lconfdata/hyperv.x86_64-latest.args index 5046ec6ea0..2aafafb340 100644 --- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.args +++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGue= st1/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ -machine pc,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc.ram,acpi= =3Don \ -accel tcg \ --cpu 'qemu64,hv-relaxed=3Don,hv-vapic=3Don,hv-spinlocks=3D0x2fff,hv-vpinde= x=3Don,hv-runtime=3Don,hv-synic=3Don,hv-stimer=3Don,hv-reset=3Don,hv-vendor= -id=3DKVM Hv,hv-frequencies=3Don,hv-reenlightenment=3Don,hv-tlbflush=3Don,h= v-ipi=3Don,hv-evmcs=3Don,hv-avic=3Don,hv-emsr-bitmap=3Don' \ +-cpu 'qemu64,hv-relaxed=3Don,hv-vapic=3Don,hv-spinlocks=3D0x2fff,hv-vpinde= x=3Don,hv-runtime=3Don,hv-synic=3Don,hv-stimer=3Don,hv-reset=3Don,hv-vendor= -id=3DKVM Hv,hv-frequencies=3Don,hv-reenlightenment=3Don,hv-tlbflush=3Don,h= v-ipi=3Don,hv-evmcs=3Don,hv-avic=3Don,hv-emsr-bitmap=3Don,hv-xmm-input=3Don= ' \ -m size=3D219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ -overcommit mem-lock=3Doff \ diff --git a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml b/tests/qemuxml= confdata/hyperv.x86_64-latest.xml index d5cb27bf1d..36d9161fa8 100644 --- a/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/hyperv.x86_64-latest.xml @@ -27,6 +27,7 @@ + diff --git a/tests/qemuxmlconfdata/hyperv.xml b/tests/qemuxmlconfdata/hyper= v.xml index db520e2074..a1e3cbbdf8 100644 --- a/tests/qemuxmlconfdata/hyperv.xml +++ b/tests/qemuxmlconfdata/hyperv.xml @@ -27,6 +27,7 @@ + --=20 2.43.0