[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC PATCH v2 0/14] Live update: boot memory management, data stream handling
Expanding on the previous WIP patch set. As before, reserve a contiguous region of memory which can be safely used by the boot allocator in the new Xen, before the live update data stream has been processed and thus before the locations of all the other pages which contain live domain data are known. As the last gasp of kexec_reloc(), leave a 'breadcrumb' in the first words of the reserved bootmem region, for Xen to find the live update data. Which is mostly a guest-transparent live migration data stream, except the guest memory is left in-place. The breadcrumb has a magic value, the physical address of an MFN array referencing the pages with actual data, and the number of such pages. All of these are allocated in arbitrary heap pages (and not in the reserved bootmem region) by the original Xen. Provide functions on the "save" side for appending to the LU data stream (designed to cope with the way that hvm_save_size() and hvm_save() work), and on the "receive" side for detecting and mapping it. On the way to excluding "already in use" pages from being added to the heap at start up, also fix the long-standing bug that pages marked bad with 'badpage=' on the command line weren't being eschewed if they were above HYPERVISOR_VIRT_END and added directly to the heap; only init_boot_pages() was doing that filtering. This is now handled by setting either PGC_broken (for bad pages) or PGC_allocated (for those containing live update data) in the corresponding page_info, at a time when the frametable is expected to be initialised to zero. When init_heap_pages() sees such a page it knows not to use it. Bad pages thus get completely ignored as they should be (and put on the pointless page_broken_list that nobody ever uses AFAICT). The "in use" pages will need some rehabilitation (of refcount, ownership etc.) before the system is in a correct state. That will come shortly, as we start passing real domain data across this mechanism and processing it. Attachment:
smime.p7s _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |