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

Re: [Xen-devel] [PATCH 2/2] x86/xsave: use alternative asm on xsave side.



>>> On 03.02.16 at 12:40, <JBeulich@xxxxxxxx> wrote:
>>>> On 02.02.16 at 08:11, <shuai.ruan@xxxxxxxxxxxxxxx> wrote:
>> --- a/xen/arch/x86/xstate.c
>> +++ b/xen/arch/x86/xstate.c
>> @@ -248,24 +248,26 @@ void xsave(struct vcpu *v, uint64_t mask)
>>      uint32_t hmask = mask >> 32;
>>      uint32_t lmask = mask;
>>      int word_size = mask & XSTATE_FP ? (cpu_has_fpu_sel ? 8 : 0) : -1;
>> +#define XSAVE(pfx) \
>> +        alternative_io_3(".byte " pfx "0x0f,0xae,0x27\n", \
>> +                         ".byte " pfx "0x0f,0xae,0x37\n", \
>> +                         X86_FEATURE_XSAVEOPT, \
>> +                         ".byte " pfx "0x0f,0xc7,0x27\n", \
>> +                         X86_FEATURE_XSAVEC, \
>> +                         ".byte " pfx "0x0f,0xc7,0x37\n", \
>> +                         X86_FEATURE_XSAVES, \
>> +                         "=m" (*ptr), \
>> +                         "a" (lmask), "d" (hmask), "D" (ptr))
>>  
>>      if ( word_size <= 0 || !is_pv_32bit_vcpu(v) )
>>      {
>>          typeof(ptr->fpu_sse.fip.sel) fcs = ptr->fpu_sse.fip.sel;
>>          typeof(ptr->fpu_sse.fdp.sel) fds = ptr->fpu_sse.fdp.sel;
>>  
>> -        if ( cpu_has_xsaves )
>> -            asm volatile ( ".byte 0x48,0x0f,0xc7,0x2f"
>> -                           : "=m" (*ptr)
>> -                           : "a" (lmask), "d" (hmask), "D" (ptr) );
>> -        else if ( cpu_has_xsavec )
>> -            asm volatile ( ".byte 0x48,0x0f,0xc7,0x27"
>> -                           : "=m" (*ptr)
>> -                           : "a" (lmask), "d" (hmask), "D" (ptr) );
>> -        else if ( cpu_has_xsaveopt )
>> +        if ( cpu_has_xsaveopt || cpu_has_xsaves )
>>          {
>>              /*
>> -             * xsaveopt may not write the FPU portion even when the 
> respective
>> +             * xsaveopt/xsaves may not write the FPU portion even when the 
> respective
> 
> Apart from this line now being too long and hence the entire
> comment needing re-formatting
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>

Withdrawn. There's a bug here, and since I'm re-doing patch 1
from scratch I'll send out the result later.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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