[RFC PATCH 6/6] KVM: PPC: Book3E: Enhance FPU laziness

Scott Wood scottwood at freescale.com
Wed Jun 5 08:53:52 EST 2013


On 06/03/2013 03:54:28 PM, Mihai Caraman wrote:
> Adopt AltiVec approach to increase laziness by calling  
> kvmppc_load_guest_fp()
> just before returning to guest instaed of each sched in.
> 
> Signed-off-by: Mihai Caraman <mihai.caraman at freescale.com>

If you did this *before* adding Altivec it would have saved a question  
in an earlier patch. :-)

> ---
>  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 019496d..5382238 100644
> --- a/arch/powerpc/kvm/booke.c
> +++ b/arch/powerpc/kvm/booke.c
> @@ -1258,6 +1258,7 @@ int kvmppc_handle_exit(struct kvm_run *run,  
> struct kvm_vcpu *vcpu,
>  		} else {
>  			kvmppc_lazy_ee_enable();
>  			kvmppc_load_guest_altivec(vcpu);
> +			kvmppc_load_guest_fp(vcpu);
>  		}
>  	}
> 

You should probably do these before kvmppc_lazy_ee_enable().

Actually, I don't think this is a good idea at all.  As I understand  
it, you're not supposed to take kernel ownersship of floating point in  
non-atomic context, because an interrupt could itself call  
enable_kernel_fp().

Do you have benchmarks showing it's even worthwhile?

-Scott


More information about the Linuxppc-dev mailing list