|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [Patch 4/4] Refining Xsave/Xrestore support
At this point please go apply all requested changes and resubmit the patch
series in its entirety. I've flushed old versions from my queue.
-- Keir
On 28/10/2010 12:28, "Haitao Shan" <maillists.shan@xxxxxxxxx> wrote:
> OK. I will update the patch according to the policy you described. Thanks!
>
> Shan Haitao
>
> 2010/10/28 Tim Deegan <Tim.Deegan@xxxxxxxxxx>:
>> Hi,
>>
>> At 03:32 +0100 on 28 Oct (1288236759), Haitao Shan wrote:
>>>>> diff -r 9bf6b4030d70 xen/arch/x86/hvm/hvm.c
>>>>> --- a/xen/arch/x86/hvm/hvm.c Wed Oct 27 21:55:45 2010 +0800
>>>>> +++ b/xen/arch/x86/hvm/hvm.c Wed Oct 27 22:17:24 2010 +0800
>>>>> @@ -575,8 +575,13 @@ static int hvm_save_cpu_ctxt(struct doma
>>>>> vc = &v->arch.guest_context;
>>>>>
>>>>> if ( v->fpu_initialised )
>>>>> - memcpy(ctxt.fpu_regs, &vc->fpu_ctxt, sizeof(ctxt.fpu_regs));
>>>>> - else
>>>>> + if ( cpu_has_xsave )
>>>>> + /* to restore guest img saved on xsave-incapable host */
>>>>> + memcpy(v->arch.xsave_area, ctxt.fpu_regs,
>>>>> + sizeof(ctxt.fpu_regs));
>>>>> + else
>>>>> + memcpy(&vc->fpu_ctxt, ctxt.fpu_regs,
>>>>> sizeof(ctxt.fpu_regs));
>>>>
>>>> I think this hunk belongs in hvm_LOAD_cpu_ctxt()!
>>> I once did the same as you said. But doing this in hvm_load_cpu_ctxt
>>> will depends on two:
>>> 1. hvm_load_cpu_ctxt can not be executed before xsave restore routine
>>> is executed. Otherwise, xsave_area contains no useful data at the time
>>> of copying.
>>
>> OK; then you should copy the other way in in the xsave load routine as
>> well. Xsave load will always happen after the CPU load since save
>> records are always written in increasing order of type.
>>
>> That way, if the save file has no xsave record, the new domain's xsave
>> state is initalized from the fpu record, and if it does then the fpu
>> state is initialized from the xsave record. I think that's the
>> behaviour you want.
>>
>> In any case this is *definitely* wrong where it is because the memcpy
>> arguments are the wrong way round. :)
>>
>>> 2. It seems to break restore when HVM guest (no touching eXtended
>>> States at all) saved on a Xsave-capable host is later restored on a
>>> Xsave-incapable host.
>>
>> That not a safe thing to do anyway -- once you've told the guest (via
>> CPUID) that XSAVE is available you can't migrate it to a host where it's
>> not supported.
>>
>> Cheers,
>>
>> Tim.
>>
>> --
>> Tim Deegan <Tim.Deegan@xxxxxxxxxx>
>> Principal Software Engineer, XenServer Engineering
>> Citrix Systems UK Ltd. (Company #02937203, SL9 0BG)
>>
>
> _______________________________________________
> 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
|
|
|
|
|