From nobody Mon Feb 9 10:28:38 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1548438934860165.03705404655227; Fri, 25 Jan 2019 09:55:34 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E6C938AE45; Fri, 25 Jan 2019 17:55:30 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 95F3D6E3F6; Fri, 25 Jan 2019 17:55:30 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 281233F954; Fri, 25 Jan 2019 17:55:30 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x0PHtGl7013649 for ; Fri, 25 Jan 2019 12:55:16 -0500 Received: by smtp.corp.redhat.com (Postfix) id 93B7E183E9; Fri, 25 Jan 2019 17:55:16 +0000 (UTC) Received: from mx1.redhat.com (ext-mx05.extmail.prod.ext.phx2.redhat.com [10.5.110.29]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8C24660930 for ; Fri, 25 Jan 2019 17:55:06 +0000 (UTC) Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D3947BDF7 for ; Fri, 25 Jan 2019 17:55:04 +0000 (UTC) Received: by mail-lf1-f65.google.com with SMTP id u18so7533347lff.10 for ; Fri, 25 Jan 2019 09:55:04 -0800 (PST) Received: from kloomba.my.domain ([213.147.206.177]) by smtp.gmail.com with ESMTPSA id f20-v6sm1604651ljk.33.2019.01.25.09.55.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 25 Jan 2019 09:55:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9FrOXZ0Q2VpjtqG2fm1UItXY7PpZ4vWe1CvYyEZEVdY=; b=uXejEjxdferPt3KScjCINtMpjO+h56vt5jnBZmhcoJSzm/9y6RmjdxN37C7RdcLxFh EecmmC4XIQng4sxI5ML0YYXFCoiQVrXTcNh0Kru9dpGwm6IMaUiuRK704HjdUAJhXjNB EW9UzpezeOpWgO7klfLK4zObNF/gbFum+Zyfq47/F69yC3guE0HlC/eLfwOWmC/3CxL2 PqOjYTl24lt1bOFsEBciQh+g+/NEVSWQfqSICGf9qZxc9aPxvBK8u1UaT5xGeXubpjoc HJG7g6nuN9GA3IOXCPAcVbzgXSzeZ3cKyqWdHRmBKpx8kPbnumXb4bGGxzAdHEa+BoSk lYog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9FrOXZ0Q2VpjtqG2fm1UItXY7PpZ4vWe1CvYyEZEVdY=; b=lg5Z0U6ZrOR1ZZtgJAoca/vxvlomG+ChUmk4CE6f2HQ7kL7lMqNQk39G+pW92X/XIB 9L0nfBzboz09ZMBXEA5A//FRkIsm7vwMgAarebyPXUF4uVX9c7yY1G+kO+mU3a1R03KB n921/9ii6D7pG4MJgbBWrljIP7r2J81tkbXIY+gXcCV9eVKV+wZIvrlxbNQgl8Kz6qut i/KHeZe0eMTXQ7sZ4YUdLa3E7K/AZPfAeSKZXqEn3OE3NTrNFP/a5xnpfrFpnuvBU4LW t1d0uUFt1dG3DOdShmeb18FYXJviHyPhTSznQht9zdA9e/t968jEwrJCiC3STIv0sdrp +vzw== X-Gm-Message-State: AJcUukdpGDZEKyKSQG/ASIPrBoZ/fBq0abauVsnM3K93D9F1Vb+WJTkX FJftpl+LL6hSWItmSpqSozwMkTZU X-Google-Smtp-Source: ALg8bN7f4vNTJl+RelxNkYrPEDIMF/Cv6lNrIbg1DJUXvywmwIoiBNYlVAKO1j7j+K2YBtie02WliA== X-Received: by 2002:a19:59c2:: with SMTP id n185mr9116151lfb.118.1548438902838; Fri, 25 Jan 2019 09:55:02 -0800 (PST) From: Roman Bogorodskiy To: libvir-list@redhat.com Date: Fri, 25 Jan 2019 21:54:44 +0400 Message-Id: <20190125175446.12288-2-bogorodskiy@gmail.com> In-Reply-To: <20190125175446.12288-1-bogorodskiy@gmail.com> References: <20190125175446.12288-1-bogorodskiy@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 25 Jan 2019 17:55:05 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Fri, 25 Jan 2019 17:55:05 +0000 (UTC) for IP:'209.85.167.65' DOMAIN:'mail-lf1-f65.google.com' HELO:'mail-lf1-f65.google.com' FROM:'bogorodskiy@gmail.com' RCPT:'' X-RedHat-Spam-Score: -0.111 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_PASS) 209.85.167.65 mail-lf1-f65.google.com 209.85.167.65 mail-lf1-f65.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.29 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: Roman Bogorodskiy Subject: [libvirt] [PATCH 1/3] conf: introduce 'msrs' feature X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 25 Jan 2019 17:55:33 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Introduce the 'msrs' feature element that controls Model Specific Registers related behaviour. At this moment it allows only single tunable attribute "ignoreUnknownWrites": Which tells hypervisor to ignore accesses to unimplemented Model Specific Registers. The only user of that for now is going to be the bhyve driver. Signed-off-by: Roman Bogorodskiy --- docs/formatdomain.html.in | 1 + docs/schemas/domaincommon.rng | 14 ++++++++++++++ src/conf/domain_conf.c | 33 +++++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 8 ++++++++ src/qemu/qemu_domain.c | 1 + 5 files changed, 57 insertions(+) diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 7f07bb7f55..b6496c63db 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2010,6 +2010,7 @@ <tlbflush state=3D'on'/> <ipi state=3D'on'/> <evmcs state=3D'on'/> + <msrs ignoreUnknownWrites=3D'yes'/> </hyperv> <kvm> <hidden state=3D'on'/> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index aa50eac424..e9dd99ab3a 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -4994,6 +4994,9 @@ + + + @@ -5242,6 +5245,17 @@ =20 + + + + + yes + no + + + + + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 22979e6c4e..c8ec3a9011 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -153,6 +153,7 @@ VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST, "vmcoreinfo", "htm", "nested-hv", + "msrs", ); =20 VIR_ENUM_IMPL(virDomainCapabilitiesPolicy, VIR_DOMAIN_CAPABILITIES_POLICY_= LAST, @@ -20232,6 +20233,7 @@ virDomainDefParseXML(xmlDocPtr xml, case VIR_DOMAIN_FEATURE_PRIVNET: case VIR_DOMAIN_FEATURE_HYPERV: case VIR_DOMAIN_FEATURE_KVM: + case VIR_DOMAIN_FEATURE_MSRS: def->features[val] =3D VIR_TRISTATE_SWITCH_ON; break; =20 @@ -20520,6 +20522,26 @@ virDomainDefParseXML(xmlDocPtr xml, def->tseg_specified =3D rv; } =20 + if (def->features[VIR_DOMAIN_FEATURE_MSRS] =3D=3D VIR_TRISTATE_SWITCH_= ON) { + if ((node =3D virXPathNode("./features/msrs", ctxt)) =3D=3D NULL) + goto error; + + if (!(tmp =3D virXMLPropString(node, "ignoreUnknownWrites"))) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("missing ignoreUnknownWrites attribute for fe= ature '%s'"), + virDomainFeatureTypeToString(VIR_DOMAIN_FEATURE= _MSRS)); + goto error; + } + + if ((def->msrs_features[VIR_DOMAIN_MSRS_IGNORE_UNKNOWN_WRITES] =3D= virTristateBoolTypeFromString(tmp)) <=3D 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown ignoreUnknownWrites value '%s'"), + tmp); + goto error; + } + VIR_FREE(tmp); + } + if ((n =3D virXPathNodeSet("./features/capabilities/*", ctxt, &nodes))= < 0) goto error; =20 @@ -22582,6 +22604,9 @@ virDomainDefFeaturesCheckABIStability(virDomainDefP= tr src, } break; =20 + case VIR_DOMAIN_FEATURE_MSRS: + break; + case VIR_DOMAIN_FEATURE_LAST: break; } @@ -28647,6 +28672,14 @@ virDomainDefFormatInternal(virDomainDefPtr def, } break; =20 + case VIR_DOMAIN_FEATURE_MSRS: + if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ON) + break; + + virBufferAsprintf(buf, "= \n", + virTristateBoolTypeToString(def->msrs_fe= atures[VIR_DOMAIN_MSRS_IGNORE_UNKNOWN_WRITES])); + break; + /* coverity[dead_error_begin] */ case VIR_DOMAIN_FEATURE_LAST: break; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index f1e6e4e8b7..36926d5e1d 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1782,6 +1782,7 @@ typedef enum { VIR_DOMAIN_FEATURE_VMCOREINFO, VIR_DOMAIN_FEATURE_HTM, VIR_DOMAIN_FEATURE_NESTED_HV, + VIR_DOMAIN_FEATURE_MSRS, =20 VIR_DOMAIN_FEATURE_LAST } virDomainFeature; @@ -1813,6 +1814,12 @@ typedef enum { VIR_DOMAIN_KVM_LAST } virDomainKVM; =20 +typedef enum { + VIR_DOMAIN_MSRS_IGNORE_UNKNOWN_WRITES =3D 0, + + VIR_DOMAIN_MSRS_LAST +} virDomainMsrs; + typedef enum { VIR_DOMAIN_CAPABILITIES_POLICY_DEFAULT =3D 0, VIR_DOMAIN_CAPABILITIES_POLICY_ALLOW, @@ -2466,6 +2473,7 @@ struct _virDomainDef { int caps_features[VIR_DOMAIN_CAPS_FEATURE_LAST]; int hyperv_features[VIR_DOMAIN_HYPERV_LAST]; int kvm_features[VIR_DOMAIN_KVM_LAST]; + int msrs_features[VIR_DOMAIN_MSRS_LAST]; unsigned int hyperv_spinlocks; virGICVersion gic_version; virDomainHPTResizing hpt_resizing; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index f42903a343..f484814977 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4030,6 +4030,7 @@ qemuDomainDefValidateFeatures(const virDomainDef *def, case VIR_DOMAIN_FEATURE_PMU: case VIR_DOMAIN_FEATURE_VMPORT: case VIR_DOMAIN_FEATURE_VMCOREINFO: + case VIR_DOMAIN_FEATURE_MSRS: case VIR_DOMAIN_FEATURE_LAST: break; } --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list