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