diff options
| author | Wanpeng Li <wanpengli@tencent.com> | 2018-03-12 07:53:02 -0400 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2018-03-16 17:03:51 -0400 |
| commit | 4d5422cea3b61f158d58924cbb43feada456ba5c (patch) | |
| tree | 0657ac655c54892dd6498d8e20b89380255d592a /arch/x86/kvm/svm.c | |
| parent | 4956aa3b8b59e336b77f1df0ac7ce1a94c0265f2 (diff) | |
KVM: X86: Provide a capability to disable MWAIT intercepts
Allowing a guest to execute MWAIT without interception enables a guest
to put a (physical) CPU into a power saving state, where it takes
longer to return from than what may be desired by the host.
Don't give a guest that power over a host by default. (Especially,
since nothing prevents a guest from using MWAIT even when it is not
advertised via CPUID.)
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Radim Krčmář <rkrcmar@redhat.com>
Cc: Jan H. Schönherr <jschoenh@amazon.de>
Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
| -rw-r--r-- | arch/x86/kvm/svm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index fa1c4977e1c2..f6578cee6bb6 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c | |||
| @@ -1398,7 +1398,7 @@ static void init_vmcb(struct vcpu_svm *svm) | |||
| 1398 | set_intercept(svm, INTERCEPT_XSETBV); | 1398 | set_intercept(svm, INTERCEPT_XSETBV); |
| 1399 | set_intercept(svm, INTERCEPT_RSM); | 1399 | set_intercept(svm, INTERCEPT_RSM); |
| 1400 | 1400 | ||
| 1401 | if (!kvm_mwait_in_guest()) { | 1401 | if (!kvm_mwait_in_guest(svm->vcpu.kvm)) { |
| 1402 | set_intercept(svm, INTERCEPT_MONITOR); | 1402 | set_intercept(svm, INTERCEPT_MONITOR); |
| 1403 | set_intercept(svm, INTERCEPT_MWAIT); | 1403 | set_intercept(svm, INTERCEPT_MWAIT); |
| 1404 | } | 1404 | } |
