public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] kvm/fpu: Enable eager restore kvm FPU for MPX
@ 2015-05-20 14:35 Liang Li
  2015-05-20  3:00 ` Li, Liang Z
  2015-05-20  5:20 ` Zhang, Yang Z
  0 siblings, 2 replies; 6+ messages in thread
From: Liang Li @ 2015-05-20 14:35 UTC (permalink / raw)
  To: kvm, linux-kernel
  Cc: gleb, pbonzini, tglx, mingo, hpa, x86, yang.z.zhang, Liang Li

The MPX feature requires eager KVM FPU restore support. We have verified
that MPX cannot work correctly with the current lazy KVM FPU restore
mechanism. Eager KVM FPU restore should be enabled if the MPX feature is
exposed to VM.

Signed-off-by: Liang Li <liang.z.li@intel.com>
---
 arch/x86/kvm/vmx.c | 2 ++
 arch/x86/kvm/x86.c | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index f7b6168..e2cccbe 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -8445,6 +8445,8 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id)
 			goto free_vmcs;
 	}
 
+	if (vmx_mpx_supported())
+		vmx_fpu_activate(&vmx->vcpu);
 	return &vmx->vcpu;
 
 free_vmcs:
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 5f38188..5993f5f 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -7060,7 +7060,8 @@ void kvm_put_guest_fpu(struct kvm_vcpu *vcpu)
 	fpu_save_init(&vcpu->arch.guest_fpu);
 	__kernel_fpu_end();
 	++vcpu->stat.fpu_reload;
-	kvm_make_request(KVM_REQ_DEACTIVATE_FPU, vcpu);
+	if (!kvm_x86_ops->mpx_supported())
+		kvm_make_request(KVM_REQ_DEACTIVATE_FPU, vcpu);
 	trace_kvm_fpu(0);
 }
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-05-20  7:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-20 14:35 [PATCH] kvm/fpu: Enable eager restore kvm FPU for MPX Liang Li
2015-05-20  3:00 ` Li, Liang Z
2015-05-20  5:20 ` Zhang, Yang Z
2015-05-20  6:41   ` Paolo Bonzini
2015-05-20  6:46     ` Zhang, Yang Z
2015-05-20  7:14     ` Li, Liang Z

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox