2012-05-16 01:04:49

by Xudong Hao

[permalink] [raw]
Subject: [PATCH 2/4] Add parameter to control A/D bits support

Add kernel parameter to control A/D bits support, it's on by default.

Signed-off-by: Haitao Shan <[email protected]>
Signed-off-by: Xudong Hao <[email protected]>

---
arch/x86/kvm/vmx.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index d2bd719..811a61e 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -64,6 +64,9 @@ static bool __read_mostly enable_unrestricted_guest = 1;
module_param_named(unrestricted_guest,
enable_unrestricted_guest, bool, S_IRUGO);

+static int __read_mostly enable_ept_ad_bits = 1;
+module_param_named(ept_ad_bits, enable_ept_ad_bits, bool, S_IRUGO);
+
static bool __read_mostly emulate_invalid_guest_state = 0;
module_param(emulate_invalid_guest_state, bool, S_IRUGO);

@@ -779,6 +782,11 @@ static inline bool cpu_has_vmx_ept_4levels(void)
return vmx_capability.ept & VMX_EPT_PAGE_WALK_4_BIT;
}

+static inline bool cpu_has_vmx_ept_ad_bits(void)
+{
+ return vmx_capability.ept & VMX_EPT_AD_BIT;
+}
+
static inline bool cpu_has_vmx_invept_individual_addr(void)
{
return vmx_capability.ept & VMX_EPT_EXTENT_INDIVIDUAL_BIT;
@@ -2611,8 +2619,12 @@ static __init int hardware_setup(void)
!cpu_has_vmx_ept_4levels()) {
enable_ept = 0;
enable_unrestricted_guest = 0;
+ enable_ept_ad_bits = 0;
}

+ if (!cpu_has_vmx_ept_ad_bits())
+ enable_ept_ad_bits = 0;
+
if (!cpu_has_vmx_unrestricted_guest())
enable_unrestricted_guest = 0;

--
1.7.1


2012-05-16 09:15:28

by Avi Kivity

[permalink] [raw]
Subject: Re: [PATCH 2/4] Add parameter to control A/D bits support

On 05/16/2012 04:08 AM, Xudong Hao wrote:
> Add kernel parameter to control A/D bits support, it's on by default.
>
> Signed-off-by: Haitao Shan <[email protected]>
> Signed-off-by: Xudong Hao <[email protected]>
>
> ---
> arch/x86/kvm/vmx.c | 12 ++++++++++++
> 1 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index d2bd719..811a61e 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -64,6 +64,9 @@ static bool __read_mostly enable_unrestricted_guest = 1;
> module_param_named(unrestricted_guest,
> enable_unrestricted_guest, bool, S_IRUGO);
>
> +static int __read_mostly enable_ept_ad_bits = 1;
> +module_param_named(ept_ad_bits, enable_ept_ad_bits, bool, S_IRUGO);

Please use bool. And call the external name 'eptad', for easier use.


--
error compiling committee.c: too many arguments to function

2012-05-16 10:40:11

by Hao, Xudong

[permalink] [raw]
Subject: RE: [PATCH 2/4] Add parameter to control A/D bits support

> -----Original Message-----
> From: Avi Kivity [mailto:[email protected]]
> Sent: Wednesday, May 16, 2012 5:15 PM
> To: Xudong Hao
> Cc: [email protected]; [email protected]; Shan, Haitao; Zhang,
> Xiantao; Hao, Xudong
> Subject: Re: [PATCH 2/4] Add parameter to control A/D bits support
>
> On 05/16/2012 04:08 AM, Xudong Hao wrote:
> > Add kernel parameter to control A/D bits support, it's on by default.
> >
> > Signed-off-by: Haitao Shan <[email protected]>
> > Signed-off-by: Xudong Hao <[email protected]>
> >
> > ---
> > arch/x86/kvm/vmx.c | 12 ++++++++++++
> > 1 files changed, 12 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> > index d2bd719..811a61e 100644
> > --- a/arch/x86/kvm/vmx.c
> > +++ b/arch/x86/kvm/vmx.c
> > @@ -64,6 +64,9 @@ static bool __read_mostly enable_unrestricted_guest =
> 1;
> > module_param_named(unrestricted_guest,
> > enable_unrestricted_guest, bool, S_IRUGO);
> >
> > +static int __read_mostly enable_ept_ad_bits = 1;
> > +module_param_named(ept_ad_bits, enable_ept_ad_bits, bool, S_IRUGO);
>
> Please use bool. And call the external name 'eptad', for easier use.
>

OK, will modify them in patch v2.

Thanks,
-Xudong

>
> --
> error compiling committee.c: too many arguments to function