> On 9 Nov 2018, at 19:34, Jim Mattson <jmattson@xxxxxxxxxx> wrote: > > RDTSCP is supported in legacy mode as well as long mode. The > IA32_TSC_AUX MSR should be set to the correct guest value before > entering any guest that supports RDTSCP. > > Fixes: 4e47c7a6d714 ("KVM: VMX: Add instruction rdtscp support for guest") > Signed-off-by: Jim Mattson <jmattson@xxxxxxxxxx> > Reviewed-by: Peter Shier <pshier@xxxxxxxxxx> > Reviewed-by: Marc Orr <marcorr@xxxxxxxxxx> > --- > arch/x86/kvm/vmx.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index ccc6a01eb4f4..120fc97a63fc 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -3415,9 +3415,6 @@ static void setup_msrs(struct vcpu_vmx *vmx) > index = __find_msr_index(vmx, MSR_CSTAR); > if (index >= 0) > move_msr_up(vmx, index, save_nmsrs++); > - index = __find_msr_index(vmx, MSR_TSC_AUX); > - if (index >= 0 && guest_cpuid_has(&vmx->vcpu, X86_FEATURE_RDTSCP)) > - move_msr_up(vmx, index, save_nmsrs++); > /* > * MSR_STAR is only needed on long mode guests, and only > * if efer.sce is enabled. > @@ -3430,6 +3427,9 @@ static void setup_msrs(struct vcpu_vmx *vmx) > index = __find_msr_index(vmx, MSR_EFER); > if (index >= 0 && update_transition_efer(vmx, index)) > move_msr_up(vmx, index, save_nmsrs++); > + index = __find_msr_index(vmx, MSR_TSC_AUX); > + if (index >= 0 && guest_cpuid_has(&vmx->vcpu, X86_FEATURE_RDTSCP)) > + move_msr_up(vmx, index, save_nmsrs++); > > vmx->save_nmsrs = save_nmsrs; > > -- > 2.19.1.930.g4563a0d9d0-goog > Reviewed-by: Liran Alon <liran.alon@xxxxxxxxxx>