All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Yang Weijiang <weijiang.yang@intel.com>
Cc: pbonzini@redhat.com, rkrcmar@redhat.com, jmattson@google.com,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	mst@redhat.com, yu-cheng.yu@intel.com, yi.z.zhang@intel.com,
	hjl.tools@gmail.com, Zhang Yi Z <yi.z.zhang@linux.intel.com>
Subject: Re: [PATCH v2 7/7] KVM:X86: Enable MSR_IA32_XSS bit 11 and 12 for CET xsaves/xrstors.
Date: Fri, 25 Jan 2019 15:03:34 -0800	[thread overview]
Message-ID: <20190125230334.GG21849@linux.intel.com> (raw)
In-Reply-To: <20190122205909.24165-8-weijiang.yang@intel.com>

On Wed, Jan 23, 2019 at 04:59:09AM +0800, Yang Weijiang wrote:
> For kvm Guest OS, right now, only bit 11(user mode CET) and bit 12
> (supervisor CET) are supported in XSS MSR, if other bits are being set,
> the write to XSS will be skipped.
> 
> Signed-off-by: Zhang Yi Z <yi.z.zhang@linux.intel.com>
> Signed-off-by: Yang Weijiang <weijiang.yang@intel.com>
> ---
>  arch/x86/kvm/vmx.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 9c8cecac80ea..25ac22b3923a 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -47,6 +47,7 @@
>  #include <asm/virtext.h>
>  #include <asm/mce.h>
>  #include <asm/fpu/internal.h>
> +#include <asm/fpu/types.h>
>  #include <asm/perf_event.h>
>  #include <asm/debugreg.h>
>  #include <asm/kexec.h>
> @@ -4334,12 +4335,16 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
>  	case MSR_IA32_XSS:
>  		if (!vmx_xsaves_supported())
>  			return 1;
> +
>  		/*
> -		 * The only supported bit as of Skylake is bit 8, but
> -		 * it is not supported on KVM.
> +		 * Right now, only support XSS_CET_U[bit 11] and
> +		 * XSS_CET_S[bit 12] in MSR_IA32_XSS.
>  		 */
> -		if (data != 0)
> +
> +		if (!vmx_guest_cet_cap(vcpu) ||

This isn't super intuitive, as evidenced by the additional comment.
If you mask off the unsupported bits then you can make a clean check and
don't need a comment, e.g.:

		supported = kvm_supported_xss();
		if (!guest_cpuid_has(vcpu, X86_FEATURE_SHSTK) &&
		    !guest_cpuid_has(vcpu, X86_FEATURE_IBT))
			supported &= ~(XSS_CET_S | XSS_CET_U);

		if (data & ~supported)
			return 1;

> +		    data & ~(KVM_SUPPORTED_XSS & host_xss))

Didn't you add kvm_supported_xss() in an earlier patch?  Might as well
use it here.

>  			return 1;
> +
>  		vcpu->arch.ia32_xss = data;
>  		if (vcpu->arch.ia32_xss != host_xss)
>  			add_atomic_switch_msr(vmx, MSR_IA32_XSS,
> -- 
> 2.17.1
> 

      reply	other threads:[~2019-01-25 23:03 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-22 20:59 [PATCH v2 0/7] This patch-set is to enable Guest CET support Yang Weijiang
2019-01-22 20:59 ` [PATCH v2 1/7] KVM:VMX: Define CET VMCS fields and bits Yang Weijiang
2019-01-25 18:02   ` Paolo Bonzini
2019-01-28 10:33     ` Yang Weijiang
2019-01-29 15:19       ` Paolo Bonzini
2019-01-29  8:29         ` Yang Weijiang
2019-01-30  8:32           ` Paolo Bonzini
2019-03-04 18:56         ` Sean Christopherson
2019-03-08  9:15           ` Paolo Bonzini
2019-03-08 15:50             ` Sean Christopherson
2019-03-08 16:34               ` Paolo Bonzini
2019-01-25 22:30   ` Sean Christopherson
2019-01-29 17:47   ` Jim Mattson
2019-01-29 18:01     ` Jim Mattson
     [not found]       ` <20190129182750.GB8156@linux.intel.com>
2019-01-29  8:34         ` Yang Weijiang
2019-01-22 20:59 ` [PATCH v2 2/7] KVM:CPUID: Define CET CPUID bits and CR4.CET master enable bit Yang Weijiang
2019-01-22 20:59 ` [PATCH v2 3/7] KVM:CPUID: Add CPUID support for CET xsaves component query Yang Weijiang
2019-01-25 17:57   ` Paolo Bonzini
2019-01-25 22:40   ` Sean Christopherson
2019-01-22 20:59 ` [PATCH v2 4/7] KVM:CPUID: Fix xsaves area size calculation for CPUID.(EAX=0xD,ECX=1) Yang Weijiang
2019-01-25 22:47   ` Sean Christopherson
2019-01-22 20:59 ` [PATCH v2 5/7] KVM:VMX: Pass through host CET related MSRs to Guest Yang Weijiang
2019-01-25 22:50   ` Sean Christopherson
2019-01-22 20:59 ` [PATCH v2 6/7] KVM:VMX: Load Guest CET via VMCS when CET is enabled in Guest Yang Weijiang
2019-01-25 22:56   ` Sean Christopherson
2019-01-30 15:16     ` Yang Weijiang
2019-01-22 20:59 ` [PATCH v2 7/7] KVM:X86: Enable MSR_IA32_XSS bit 11 and 12 for CET xsaves/xrstors Yang Weijiang
2019-01-25 23:03   ` Sean Christopherson [this message]

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=20190125230334.GG21849@linux.intel.com \
    --to=sean.j.christopherson@intel.com \
    --cc=hjl.tools@gmail.com \
    --cc=jmattson@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=weijiang.yang@intel.com \
    --cc=yi.z.zhang@intel.com \
    --cc=yi.z.zhang@linux.intel.com \
    --cc=yu-cheng.yu@intel.com \
    /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.