[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Fix save/restore and migrate on x86_64.
# HG changeset patch # User smh22@xxxxxxxxxxxxxxxxxxxx # Node ID 486f4c9e1c22b64c33c4b83e7e675eecc83cde00 # Parent 001ba14fbb1bcc91d4e02e70d5c64d661870c398 Fix save/restore and migrate on x86_64. Signed-off-by: Steven Hand <steven@xxxxxxxxxxxxx> diff -r 001ba14fbb1b -r 486f4c9e1c22 tools/libxc/xc_linux_save.c --- a/tools/libxc/xc_linux_save.c Sat Nov 26 10:32:57 2005 +++ b/tools/libxc/xc_linux_save.c Sat Nov 26 11:13:39 2005 @@ -457,6 +457,15 @@ xen_start = (hvirt_start >> L2_PAGETABLE_SHIFT_PAE) & 0x1ff; } + if (pt_levels == 4 && type == L4TAB) { + /* + ** XXX SMH: should compute these from hvirt_start (which we have) + ** and hvirt_end (which we don't) + */ + xen_start = 256; + xen_end = 272; + } + /* Now iterate through the page table, canonicalizing each PTE */ for (i = 0; i < pte_last; i++ ) { @@ -721,12 +730,6 @@ } /* Domain is still running at this point */ - - if (live && (pt_levels == 4)) { - ERR("Live migration not supported for 64-bit guests"); - live = 0; - } - if (live) { if (xc_shadow_control(xc_handle, dom, @@ -811,7 +814,7 @@ for (i = 0; i < max_pfn; i++) { mfn = live_p2m[i]; - if((mfn != 0xffffffffUL) && (mfn_to_pfn(mfn) != i)) { + if((mfn != INVALID_P2M_ENTRY) && (mfn_to_pfn(mfn) != i)) { DPRINTF("i=0x%x mfn=%lx live_m2p=%lx\n", i, mfn, mfn_to_pfn(mfn)); err++; diff -r 001ba14fbb1b -r 486f4c9e1c22 tools/python/xen/xend/XendCheckpoint.py --- a/tools/python/xen/xend/XendCheckpoint.py Sat Nov 26 10:32:57 2005 +++ b/tools/python/xen/xend/XendCheckpoint.py Sat Nov 26 11:13:39 2005 @@ -128,7 +128,7 @@ try: l = read_exact(fd, sizeof_unsigned_long, "not a valid guest state file: pfn count read") - nr_pfns = unpack("=L", l)[0] # XXX endianess + nr_pfns = unpack("L", l)[0] # native sizeof long if nr_pfns > 16*1024*1024: # XXX raise XendError( "not a valid guest state file: pfn count out of range") _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |