From: Chao Gao <chao.gao@intel.com>
To: Zhang Chen <chen.zhang@intel.com>
Cc: <x86@kernel.org>, <linux-kernel@vger.kernel.org>,
<kvm@vger.kernel.org>,
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Sean Christopherson <seanjc@google.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
"Borislav Petkov" <bp@alien8.de>, Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [RFC PATCH 8/9] x86/kvm/vmx: Initialize SPEC_CTRL MASK for RRSBA
Date: Sun, 15 Jan 2023 22:20:23 +0800 [thread overview]
Message-ID: <Y8QLp33AgbDjMMh7@gao-cwp> (raw)
In-Reply-To: <20221210160046.2608762-9-chen.zhang@intel.com>
On Sun, Dec 11, 2022 at 12:00:45AM +0800, Zhang Chen wrote:
>VMMs can address mitigations issues in migration pool by applying
>the needed controls whenever the guest is operating on a newer
>processor. If a guest is using retpoline to mitigate intra-mode BTI
>in CPL0, the VMM can set RRSBA_DIS_S when the guest runs on hardware
>which enumerates RRSBA.
>
>Signed-off-by: Zhang Chen <chen.zhang@intel.com>
>---
> arch/x86/kvm/vmx/vmx.c | 57 +++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 56 insertions(+), 1 deletion(-)
>
>diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
>index 6ed6b743be0e..fb0f3b1639b9 100644
>--- a/arch/x86/kvm/vmx/vmx.c
>+++ b/arch/x86/kvm/vmx/vmx.c
>@@ -2007,6 +2007,20 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> return 1;
> msr_info->data = vmx->msr_virtual_enumeration;
> break;
>+ case MSR_VIRTUAL_MITIGATION_ENUM:
>+ if (!msr_info->host_initiated &&
>+ !(vmx->msr_virtual_enumeration &
>+ VIRT_ENUM_MITIGATION_CTRL_SUPPORT))
>+ return 1;
>+ msr_info->data = vmx->msr_virtual_mitigation_enum;
>+ break;
>+ case MSR_VIRTUAL_MITIGATION_CTRL:
>+ if (!msr_info->host_initiated &&
>+ !(vmx->msr_virtual_enumeration &
>+ VIRT_ENUM_MITIGATION_CTRL_SUPPORT))
>+ return 1;
>+ msr_info->data = vmx->msr_virtual_mitigation_ctrl;
>+ break;
> default:
> find_uret_msr:
> msr = vmx_find_uret_msr(vmx, msr_info->index);
>@@ -2056,7 +2070,7 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> struct vmx_uret_msr *msr;
> int ret = 0;
> u32 msr_index = msr_info->index;
>- u64 data = msr_info->data;
>+ u64 data = msr_info->data, arch_msr;
> u32 index;
>
> switch (msr_index) {
>@@ -2390,6 +2404,46 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> vmx->msr_virtual_enumeration = data &
> VIRT_ENUM_MITIGATION_CTRL_SUPPORT;
> break;
>+ case MSR_VIRTUAL_MITIGATION_ENUM:
>+ if (msr_info->host_initiated &&
>+ !(vmx->msr_virtual_enumeration &
>+ VIRT_ENUM_MITIGATION_CTRL_SUPPORT))
>+ return 1;
>+ if (data & ~MITI_ENUM_SUPPORTED)
>+ return 1;
>+ vmx->msr_virtual_mitigation_enum = data;
>+ break;
>+ case MSR_VIRTUAL_MITIGATION_CTRL:
>+ if (!msr_info->host_initiated &&
>+ !(vmx->msr_virtual_enumeration &
>+ VIRT_ENUM_MITIGATION_CTRL_SUPPORT))
>+ return 1;
>+ if (data & ~MITI_CTRL_USED)
>+ return 1;
>+
>+ if (boot_cpu_has(X86_FEATURE_ARCH_CAPABILITIES))
>+ rdmsrl(MSR_IA32_ARCH_CAPABILITIES, arch_msr);
>+
>+ if (data & MITI_CTRL_RETPOLINE_S_USED &&
>+ boot_cpu_has(X86_FEATURE_RRSBA_CTRL) &&
>+ arch_msr & ARCH_CAP_RRSBA)
>+ vmx->spec_ctrl_mask |= SPEC_CTRL_RRSBA_DIS_S;
>+ else
>+ vmx->spec_ctrl_mask &= ~SPEC_CTRL_RRSBA_DIS_S;
IIUC, only above chunk belongs to this patch. Other changes should be moved
to patch 7, which deals with MSRs emulation.
next prev parent reply other threads:[~2023-01-15 14:20 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-10 16:00 [RFC PATCH 0/9] Intel SPEC CTRL virtualization support Zhang Chen
2022-12-10 16:00 ` [RFC PATCH 1/9] x86/speculation: Introduce Intel SPEC_CTRL BHI related definition Zhang Chen
2022-12-10 16:00 ` [RFC PATCH 2/9] KVM: x86: Add a kvm-only leaf for RRSBA_CTRL Zhang Chen
2022-12-14 21:33 ` Ricardo Neri
2022-12-15 2:59 ` Zhang, Chen
2022-12-10 16:00 ` [RFC PATCH 3/9] KVM: x86: Add a kvm-only leaf for BHI_CTRL Zhang Chen
2022-12-14 21:37 ` Ricardo Neri
2022-12-10 16:00 ` [RFC PATCH 4/9] x86/kvm/vmx: Virtualize Intel IA32_SPEC_CTRL Zhang Chen
2022-12-10 16:00 ` [RFC PATCH 5/9] x86/bugs: Use Virtual MSRs to request hardware mitigations Zhang Chen
2022-12-12 20:23 ` Pawan Gupta
2022-12-14 7:57 ` Zhang, Chen
2022-12-14 20:18 ` Sean Christopherson
2022-12-19 13:56 ` Chao Gao
2022-12-19 17:14 ` Sean Christopherson
2022-12-20 13:43 ` Chao Gao
2022-12-22 18:31 ` Sean Christopherson
2023-01-10 9:26 ` Zhang, Chen
2022-12-10 16:00 ` [RFC PATCH 6/9] kvm/x86: Add ARCH_CAP_VIRTUAL_ENUM for guest MSR_IA32_ARCH_CAPABILITIES Zhang Chen
2022-12-21 4:03 ` Yang, Weijiang
2022-12-29 2:58 ` Zhang, Chen
2022-12-29 7:02 ` Yang, Weijiang
2022-12-29 7:41 ` Zhang, Chen
2022-12-29 8:38 ` Yang, Weijiang
2022-12-29 9:56 ` Zhang, Chen
2022-12-10 16:00 ` [RFC PATCH 7/9] kvm/x86: Add MSR_VIRTUAL_MITIGATION_ENUM/CTRL emulation Zhang Chen
2022-12-10 16:00 ` [RFC PATCH 8/9] x86/kvm/vmx: Initialize SPEC_CTRL MASK for RRSBA Zhang Chen
2023-01-15 14:20 ` Chao Gao [this message]
2022-12-10 16:00 ` [RFC PATCH 9/9] x86/kvm/vmx: Initialize SPEC_CTRL MASK for BHI Zhang Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y8QLp33AgbDjMMh7@gao-cwp \
--to=chao.gao@intel.com \
--cc=bp@alien8.de \
--cc=chen.zhang@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.