|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Migration between different bitness toolstacks
Hello,
As part of XenServer's attempt to move to a 64bit dom0, we have
encountered a sizeable flaw in xc_domain_{save,restore}().
Migration of a VM from a 32bit toolstack to a 64bit toolstackfails with:
xc: detail: xc_domain_restore: starting restore of new domid 1
xc: detail: xc_domain_restore: p2m_size = ffffffff00010000
xc: error: Couldn't allocate p2m_frame_list array: Internal error
xc: detail: Restore exit of domid 1 with rc=1
This is caused because of
RDEXACT(io_fd, &dinfo->p2m_size, sizeof(unsigned long))
where sizeof(unsigned long) is different between the source and destination.
It is unreasonable for the format of the migration stream to rely on the
bitness of the toolstack, which should be completely transparent as far
as "motion of a VM" is concerned. Furthermore, the same issue occurs
with suspend/resume where the stream gets written to a file in the meantime.
A quick grep across the code shows several other items in the migration
stream which depend on toolstack bitness.
There is no way to divine whether the far side of the migration stream
is 32 or 64 bit, which is now vital information required to read the
stream correctly.
As a result, it is not obvious how best to fix this with backwards
compatibility in mind.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |