From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 3/6] KVM: PPC: Book3E: Increase FPU laziness Date: Wed, 3 Jul 2013 13:37:18 -0500 Message-ID: <1372876638.8183.138@snotra> References: <1372855359-13452-1-git-send-email-mihai.caraman@freescale.com> <1372855359-13452-4-git-send-email-mihai.caraman@freescale.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="Flowed"; DelSp="Yes" Content-Transfer-Encoding: 7bit Cc: Mihai Caraman , linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, kvm-ppc@vger.kernel.org To: Mihai Caraman Return-path: In-Reply-To: <1372855359-13452-4-git-send-email-mihai.caraman@freescale.com> (from mihai.caraman@freescale.com on Wed Jul 3 07:42:36 2013) Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" List-Id: kvm.vger.kernel.org On 07/03/2013 07:42:36 AM, Mihai Caraman wrote: > Increase FPU laziness by calling kvmppc_load_guest_fp() just before > returning to guest instead of each sched in. Without this improvement > an interrupt may also claim floting point corrupting guest state. > > Signed-off-by: Mihai Caraman > --- > arch/powerpc/kvm/booke.c | 1 + > arch/powerpc/kvm/e500mc.c | 2 -- > 2 files changed, 1 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c > index 113961f..3cae2e3 100644 > --- a/arch/powerpc/kvm/booke.c > +++ b/arch/powerpc/kvm/booke.c > @@ -1204,6 +1204,7 @@ int kvmppc_handle_exit(struct kvm_run *run, > struct kvm_vcpu *vcpu, > r = (s << 2) | RESUME_HOST | (r & > RESUME_FLAG_NV); > } else { > kvmppc_lazy_ee_enable(); > + kvmppc_load_guest_fp(vcpu); > } > } > > diff --git a/arch/powerpc/kvm/e500mc.c b/arch/powerpc/kvm/e500mc.c > index 19c8379..09da1ac 100644 > --- a/arch/powerpc/kvm/e500mc.c > +++ b/arch/powerpc/kvm/e500mc.c > @@ -143,8 +143,6 @@ void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, > int cpu) > kvmppc_e500_tlbil_all(vcpu_e500); > __get_cpu_var(last_vcpu_on_cpu) = vcpu; > } > - > - kvmppc_load_guest_fp(vcpu); > } > > void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) Can we now remove vcpu->fpu_active, and the comment that says "Kernel usage of FP (via enable_kernel_fp()) in this thread must not occur while vcpu->fpu_active is set."? -Scott