|
|
|
|
|
|
|
|
|
|
xen-devel
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
|
|
|
|
|