All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sheng Yang <sheng@linux.intel.com>
To: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
Cc: Avi Kivity <avi@redhat.com>, kvm@vger.kernel.org
Subject: Re: [PATCH v2] KVM VMX: Make sure single type invvpid is supported before issuing invvpid instruction
Date: Thu, 3 Jun 2010 17:58:50 +0800	[thread overview]
Message-ID: <201006031758.50792.sheng@linux.intel.com> (raw)
In-Reply-To: <4C0779B2.8000001@cn.fujitsu.com>

On Thursday 03 June 2010 17:45:22 Gui Jianfeng wrote:
> According to SDM, we need check whether single-context INVVPID type is
> supported before issuing invvpid instruction.
> 
> Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
> ---
>  arch/x86/include/asm/vmx.h |    2 ++
>  arch/x86/kvm/vmx.c         |   14 +++++++++++++-
>  2 files changed, 15 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
> index 104cf86..4e78b25 100644
> --- a/arch/x86/include/asm/vmx.h
> +++ b/arch/x86/include/asm/vmx.h
> @@ -376,6 +376,8 @@ enum vmcs_field {
>  #define VMX_EPT_EXTENT_CONTEXT_BIT		(1ull << 25)
>  #define VMX_EPT_EXTENT_GLOBAL_BIT		(1ull << 26)
> 
> +#define VMX_VPID_EXTENT_SINGLE_CONTEXT_BIT      (1ull << 9)
> +
>  #define VMX_EPT_DEFAULT_GAW			3
>  #define VMX_EPT_MAX_GAW				0x4
>  #define VMX_EPT_MT_EPTE_SHIFT			3
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 0e561a5..f363fe3 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -355,6 +355,17 @@ static inline bool cpu_has_vmx_invept_global(void)
>  	return vmx_capability.ept & VMX_EPT_EXTENT_GLOBAL_BIT;
>  }
> 
> +static inline bool cpu_has_vmx_invvpid_single(void)
> +{
> +	/*
> +	 *  bit 41 of IA32_VMX_EPT_VPID_CAP MSR indicates whehter the
> +	 *  single-context INVVPID type is supported. vmx_capability.vpid
> +	 *  represents the higher 32 bits of IA32_VMX_EPT_VPID_CAP MSR, so
> +	 *  VMX_VPID_EXTENT_SINGLE_CONTEXT_BIT(bit 9) is used here.
> +	 */

The comment is better with the VMX_VPID_EXTENT_SINGLE_CONTEXT_BIT marco, since it 
would also applied to other similar ones. 

And I have checked my sent mail, found the word "later" maybe the reason you put 
the comment here... In fact I meant something like

#define VMX_EPT_INVVPID_SINGLE_CONTEXT_BIT (1 << 9) /* (41 - 32) */

Sorry if the word caused confusing...

--
regards
Yang, Sheng

> +	return vmx_capability.vpid & VMX_VPID_EXTENT_SINGLE_CONTEXT_BIT;
> +}
> +
>  static inline bool cpu_has_vmx_ept(void)
>  {
>  	return vmcs_config.cpu_based_2nd_exec_ctrl &
> @@ -499,7 +510,8 @@ static inline void vpid_sync_vcpu_all(struct vcpu_vmx
> *vmx) if (vmx->vpid == 0)
>  		return;
> 
> -	__invvpid(VMX_VPID_EXTENT_SINGLE_CONTEXT, vmx->vpid, 0);
> +	if (cpu_has_vmx_invvpid_single())
> +		__invvpid(VMX_VPID_EXTENT_SINGLE_CONTEXT, vmx->vpid, 0);
>  }
> 
>  static inline void ept_sync_global(void)

  reply	other threads:[~2010-06-03 12:56 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-03  8:44 [PATCH] KVM VMX: Make sure single type invvpid is supported before issuing this instruction Gui Jianfeng
2010-06-03  8:57 ` Sheng Yang
2010-06-03  9:07   ` Gui Jianfeng
2010-06-03  9:45   ` [PATCH v2] KVM VMX: Make sure single type invvpid is supported before issuing invvpid instruction Gui Jianfeng
2010-06-03  9:58     ` Sheng Yang [this message]
2010-06-04  0:51       ` [PATCH v3] " Gui Jianfeng
2010-06-04  5:40         ` Sheng Yang
2010-06-04 17:51         ` Marcelo Tosatti

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=201006031758.50792.sheng@linux.intel.com \
    --to=sheng@linux.intel.com \
    --cc=avi@redhat.com \
    --cc=guijianfeng@cn.fujitsu.com \
    --cc=kvm@vger.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.