| From 9dbe6cf941a6fe82933aef565e4095fb10f65023 Mon Sep 17 00:00:00 2001 |
| From: Paolo Bonzini <pbonzini@redhat.com> |
| Date: Thu, 12 Nov 2015 14:49:17 +0100 |
| Subject: KVM: x86: expose MSR_TSC_AUX to userspace |
| |
| From: Paolo Bonzini <pbonzini@redhat.com> |
| |
| commit 9dbe6cf941a6fe82933aef565e4095fb10f65023 upstream. |
| |
| If we do not do this, it is not properly saved and restored across |
| migration. Windows notices due to its self-protection mechanisms, |
| and is very upset about it (blue screen of death). |
| |
| Cc: Radim Krcmar <rkrcmar@redhat.com> |
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/x86/kvm/x86.c | 11 ++++++----- |
| 1 file changed, 6 insertions(+), 5 deletions(-) |
| |
| --- a/arch/x86/kvm/x86.c |
| +++ b/arch/x86/kvm/x86.c |
| @@ -942,7 +942,7 @@ static u32 msrs_to_save[] = { |
| MSR_CSTAR, MSR_KERNEL_GS_BASE, MSR_SYSCALL_MASK, MSR_LSTAR, |
| #endif |
| MSR_IA32_TSC, MSR_IA32_CR_PAT, MSR_VM_HSAVE_PA, |
| - MSR_IA32_FEATURE_CONTROL, MSR_IA32_BNDCFGS |
| + MSR_IA32_FEATURE_CONTROL, MSR_IA32_BNDCFGS, MSR_TSC_AUX, |
| }; |
| |
| static unsigned num_msrs_to_save; |
| @@ -3847,16 +3847,17 @@ static void kvm_init_msr_list(void) |
| |
| /* |
| * Even MSRs that are valid in the host may not be exposed |
| - * to the guests in some cases. We could work around this |
| - * in VMX with the generic MSR save/load machinery, but it |
| - * is not really worthwhile since it will really only |
| - * happen with nested virtualization. |
| + * to the guests in some cases. |
| */ |
| switch (msrs_to_save[i]) { |
| case MSR_IA32_BNDCFGS: |
| if (!kvm_x86_ops->mpx_supported()) |
| continue; |
| break; |
| + case MSR_TSC_AUX: |
| + if (!kvm_x86_ops->rdtscp_supported()) |
| + continue; |
| + break; |
| default: |
| break; |
| } |