From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH v5] kvm/fpu: Enable fully eager restore kvm FPU Date: Tue, 20 Nov 2012 20:00:17 -0200 Message-ID: <20121120220017.GA29005@amt.cnet> References: <1352253671-1262-1-git-send-email-xudong.hao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: avi@redhat.com, kvm@vger.kernel.org To: Xudong Hao Return-path: Received: from mx1.redhat.com ([209.132.183.28]:30078 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751466Ab2KTWMT (ORCPT ); Tue, 20 Nov 2012 17:12:19 -0500 Content-Disposition: inline In-Reply-To: <1352253671-1262-1-git-send-email-xudong.hao@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, Nov 07, 2012 at 10:01:11AM +0800, Xudong Hao wrote: > Romove fpu lazy restore logic, using eager restore totally. > > v5 changes from v4: > - remove lazy fpu restore totally, fpu eager restore does not have performance > regression and simple the code. > > v4 changes from v3: > - Wrap up some confused code with a clear function lazy_fpu_allowed() > - Update fpu while update cr4 too. > > v3 changes from v2: > - Make fpu active explicitly while guest xsave is enabling and non-lazy xstate > bit exist. > > v2 changes from v1: > - Expand KVM_XSTATE_LAZY to 64 bits before negating it. > > Signed-off-by: Xudong Hao > --- > arch/x86/kvm/vmx.c | 9 ++------- > arch/x86/kvm/x86.c | 8 +------- > include/linux/kvm_host.h | 1 - > 3 files changed, 3 insertions(+), 15 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 6599e45..c1fd2e1 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -1197,7 +1197,7 @@ static void update_exception_bitmap(struct kvm_vcpu *vcpu) > u32 eb; > > eb = (1u << PF_VECTOR) | (1u << UD_VECTOR) | (1u << MC_VECTOR) | > - (1u << NM_VECTOR) | (1u << DB_VECTOR); > + (1u << DB_VECTOR); > if ((vcpu->guest_debug & > (KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP)) == > (KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP)) Please remove the code entirely, including: if (is_no_device(intr_info)) { vmx_fpu_activate(vcpu); return 1; } and clts handling. fpu_active/fpu_deactivate callbacks become unused, don't they? Also remove fpu_active variable.