On Wednesday 09 December 2009 17:54:46 Avi Kivity wrote: > On 12/09/2009 11:11 AM, Sheng Yang wrote: > > Before enabling, execution of "rdtscp" in guest would result in #UD. > > > > Signed-off-by: Sheng Yang<sh...@linux.intel.com> > > --- > > arch/x86/include/asm/vmx.h | 1 + > > arch/x86/kvm/vmx.c | 3 ++- > > 2 files changed, 3 insertions(+), 1 deletions(-) > > > > diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h > > index 2b49454..8c39320 100644 > > --- a/arch/x86/include/asm/vmx.h > > +++ b/arch/x86/include/asm/vmx.h > > @@ -53,6 +53,7 @@ > > */ > > #define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001 > > #define SECONDARY_EXEC_ENABLE_EPT 0x00000002 > > +#define SECONDARY_EXEC_RDTSCP 0x00000008 > > #define SECONDARY_EXEC_ENABLE_VPID 0x00000020 > > #define SECONDARY_EXEC_WBINVD_EXITING 0x00000040 > > #define SECONDARY_EXEC_UNRESTRICTED_GUEST 0x00000080 > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > > index 9a0a2cf..e1a2ed2 100644 > > --- a/arch/x86/kvm/vmx.c > > +++ b/arch/x86/kvm/vmx.c > > @@ -1243,7 +1243,8 @@ static __init int setup_vmcs_config(struct > > vmcs_config *vmcs_conf) SECONDARY_EXEC_ENABLE_VPID | > > SECONDARY_EXEC_ENABLE_EPT | > > SECONDARY_EXEC_UNRESTRICTED_GUEST | > > - SECONDARY_EXEC_PAUSE_LOOP_EXITING; > > + SECONDARY_EXEC_PAUSE_LOOP_EXITING | > > + SECONDARY_EXEC_RDTSCP; > > if (adjust_vmx_controls(min2, opt2, > > MSR_IA32_VMX_PROCBASED_CTLS2, > > &_cpu_based_2nd_exec_control)< 0) > > Need to save/restore MSR_TSC_AUX (but only if rdtscp in cpuid), support > MSR_TSC_AUX in get/save, and expose via GET_SUPPORTED_CPUID (only on > processors which support the feature). Yeah, I realize this later last night... Though it passed my testing program.
Would update it soon. -- regards Yang, Sheng -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html