diff options
author | Jim Mattson <[email protected]> | 2018-11-09 09:35:11 -0800 |
---|---|---|
committer | Paolo Bonzini <[email protected]> | 2018-12-21 11:28:24 +0100 |
commit | 788fc1e9ad8e1d332d3a18692028d1faee6fabb0 (patch) | |
tree | ec1fb1f051a282db82ea63d955bbd3c8430e73dc | |
parent | 9ebdfe5230f2e50e3ba05c57723a06e90946815a (diff) |
kvm: vmx: Allow guest read access to IA32_TSC
Let the guest read the IA32_TSC MSR with the generic RDMSR instruction
as well as the specific RDTSC(P) instructions. Note that the hardware
applies the TSC multiplier and offset (when applicable) to the result of
RDMSR(IA32_TSC), just as it does to the result of RDTSC(P).
Signed-off-by: Jim Mattson <[email protected]>
Reviewed-by: Peter Shier <[email protected]>
Reviewed-by: Marc Orr <[email protected]>
Reviewed-by: Liran Alon <[email protected]>
Signed-off-by: Radim Krčmář <[email protected]>
-rw-r--r-- | arch/x86/kvm/vmx/vmx.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index d5e81485fc15..9b58921f5cd3 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -6401,6 +6401,7 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id) goto free_msrs; msr_bitmap = vmx->vmcs01.msr_bitmap; + vmx_disable_intercept_for_msr(msr_bitmap, MSR_IA32_TSC, MSR_TYPE_R); vmx_disable_intercept_for_msr(msr_bitmap, MSR_FS_BASE, MSR_TYPE_RW); vmx_disable_intercept_for_msr(msr_bitmap, MSR_GS_BASE, MSR_TYPE_RW); vmx_disable_intercept_for_msr(msr_bitmap, MSR_KERNEL_GS_BASE, MSR_TYPE_RW); |