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

Re: [Xen-devel] [PATCH 13/15] x86/xstate: Add Hygon Dhyana support



>>> Pu Wen <puwen@xxxxxxxx> 12/20/18 2:16 PM >>>
>--- a/xen/arch/x86/xstate.c
>+++ b/xen/arch/x86/xstate.c
>@@ -369,7 +369,7 @@ void xrstor(struct vcpu *v, uint64_t mask)
>unsigned int faults, prev_faults;
 >
>/*
>-     * AMD CPUs don't save/restore FDP/FIP/FOP unless an exception
>+     * AMD or Hygon CPUs don't save/restore FDP/FIP/FOP unless an exception
>* is pending. Clear the x87 state here by setting it to fixed
>* values. The hypervisor data segment can be sometimes 0 and
>* sometimes new user value. Both should be ok. Use the FPU saved
>@@ -377,7 +377,8 @@ void xrstor(struct vcpu *v, uint64_t mask)
>*/
>if ( (mask & ptr->xsave_hdr.xstate_bv & X86_XCR0_FP) &&
>!(ptr->fpu_sse.fsw & ~ptr->fpu_sse.fcw & 0x003f) &&
>-         boot_cpu_data.x86_vendor == X86_VENDOR_AMD )
>+         (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
>+          boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) )
>asm volatile ( "fnclex\n\t"        /* clear exceptions */
>"ffree %%st(7)\n\t" /* clear stack tag */
>"fildl %0"          /* load to clear state */

A similar change then is needed to fpu_fxrstor() as well, in case people
disable use of XSAVE via command line option. And then there was also
a recent change to this area by Andrew, which may affect you as well.
(Sorry, I don't have a pointer at hand.)


Jan




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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