On 11/07/2024 11:38 am, Fonyuy-Asheri Caleb wrote:
> Hello, 
> 
> I am trying to understand the causes of the vcpu xstate restore error
> during live migration.
> I get the following error during live migration: 
> 
> xc: error: Failed to set vcpu0's xsave info (22 = Invalid argument):
> Internal error
> 
> I was able to locate the failure point to the file
> xen/arch/x86/domctl.c  with the following check.
> 
> if( evc->size<PV_XSAVE_HDR_SIZE||
> evc->size>PV_XSAVE_SIZE(xfeature_mask) )
> gotovcpuextstate_out;
> 
> I know this is related to the number of xstates handled by the source
> server. Please can 
> someone explain to me how these states are computed? 
> 
> I earlier thought it was simply the number xsave dependent features on
> the CPU but it seems
> to be more than that. 
> 
> Thanks in advance.

It is certainly more complicated than that.

What that's saying is that Xen doesn't think that the size of the blob
matches expectations.  That said - I'm in the middle of rewriting this
logic because lots of it is subtly wrong.

To start with, which version (or versions?) of Xen, and what hardware?

Are you able to capture `xen-cpuid -p` on the source and destination, as
well as `xen-cpuid -p $domid` of the VM running on the source?

Do you have any CPUID overrides in the VM config file?

Thanks,

~Andrew

Reply via email to