[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 0 of 8] FPU LWP: patch description



>>> On 07.05.11 at 07:39, "Huang2, Wei" <Wei.Huang2@xxxxxxx> wrote:
> This patch set supports AMD lightweight profiling for SVM guests. Because LWP 
> isn't tracked by CR0.TS bit, we clean up the FPU code to handle lazy and 
> unlazy FPU states differently. Lazy FPU state (such as SSE, YMM) is handled 
> when #NM is triggered. Unlazy state, such as LWP, is saved and restored on 
> each vcpu context switch.
> 
> Per Keir's comments, I moved extended state related code into xstate.c and 
> xstate.h. The FPU related code in i387.c was also cleaned up and has 
> consistent names now. The comments from Jan Beulich were also taken. I added 
> a new variable, nonlazy_xstate_used, to control whether save/restore nonlazy 
> state.
> 
> ====== i387.c ======
> * void vcpu_restore_fpu_eager(struct vcpu *v);
> * void vcpu_restore_fpu_lazy(struct vcpu *v);
> * void vcpu_save_fpu(struct vcpu *v);
> * int vcpu_init_fpu(struct vcpu *v);
> * void vcpu_destroy_fpu(struct vcpu *v);
> 
> ====== xstate.c ======
> * void set_xcr0(u64 xfeatures);
> * uint64_t get_xcr0(void);
> * void xsave(struct vcpu *v, uint64_t mask);
> * void xrstor(struct vcpu *v, uint64_t mask);
> * bool_t xsave_enabled(const struct vcpu *v);
> * void xstate_free_save_area(struct vcpu *v);
> * int xstate_alloc_save_area(struct vcpu *v);
> * void xstate_init(void);
> 
> 
> This code has been tested on real hardware. Please comment.

Thanks, Wei - this looks good now to me.

Jan

> 
> -Wei
> 
> 
>  b/xen/arch/x86/xstate.c            |  188 +++++++++++++++
>  b/xen/include/asm-x86/xstate.h     |   72 +++++
>  tools/libxc/xc_cpuid_x86.c         |    6
>  xen/arch/x86/Makefile              |    1
>  xen/arch/x86/acpi/suspend.c        |    2
>  xen/arch/x86/cpu/common.c          |    4
>  xen/arch/x86/domain.c              |   29 --
>  xen/arch/x86/domctl.c              |    2
>  xen/arch/x86/hvm/hvm.c             |    3
>  xen/arch/x86/hvm/svm/svm.c         |   75 ++++++
>  xen/arch/x86/hvm/svm/vmcb.c        |    5
>  xen/arch/x86/hvm/vmx/vmcs.c        |    1
>  xen/arch/x86/hvm/vmx/vmx.c         |    2
>  xen/arch/x86/i387.c                |  450 
> ++++++++++++++++---------------------
>  xen/arch/x86/traps.c               |    3
>  xen/include/asm-x86/cpufeature.h   |    2
>  xen/include/asm-x86/domain.h       |    5
>  xen/include/asm-x86/hvm/svm/vmcb.h |    3
>  xen/include/asm-x86/i387.h         |   71 -----
>  xen/include/asm-x86/msr-index.h    |    4
>  20 files changed, 573 insertions(+), 355 deletions(-)
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx 
> http://lists.xensource.com/xen-devel 




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.