From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yang Hongyang Subject: [PATCH v4 --for 4.6 COLOPre 00/25] Prerequisite patches for COLO Date: Wed, 15 Jul 2015 15:45:26 +0800 Message-ID: <1436946351-21118-1-git-send-email-yanghy@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, ian.campbell@citrix.com, wency@cn.fujitsu.com, andrew.cooper3@citrix.com, yunhong.jiang@intel.com, eddie.dong@intel.com, guijianfeng@cn.fujitsu.com, rshriram@cs.ubc.ca, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org This patchset is Prerequisite for COLO feature. Refer to: http://wiki.xen.org/wiki/COLO_-_Coarse_Grain_Lock_Stepping This patchse is based on Andrew Cooper's Libxl migration v4.1: http://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=shortlog;h=refs/heads/libxl-migv2-v4.1 In this version, I moved some of the COLO specific patches down to the COLO main series, so most patches of this series are refactoring and can be applied first. I've done some simple test. Both Remus and normal migration work after apply this patchset. The patch to fix Remus on migration v2 will be sent later as a seperate patch. You can also get the patchset from: https://github.com/macrosheep/xen/tree/colo-v8 v3->v4: - Rebased to the latest migration v2 branch - Addressed comments from last round v2->v3: - Merge '[PATCH v2 0/6] Misc cleanups for libxl' into this patchset for easy review - Addressed review comments - Add back channel to libxc - Introduce should_checkpoint callback - Introduce DIRTY_BITMAP record on libxc side - Introduce COLO_CONTEXT record on libxl side - Ported to Libxl migration v2 v1->v2: - Rebased to [PATCH v2 0/6] Misc cleanups for libxl - Add a bugfix for the error handling of process_record Wen Congyang (2): tools/libxc: support to resume uncooperative HVM guests tools/libxl: Add back channel to allow migration target send data back Yang Hongyang (23): tools/libxl: rename libxl__domain_suspend to libxl__domain_save A tools/libxl: move domain suspend code into libxl_dom_suspend.c A tools/libxl: move domain resume code into libxl_dom_suspend.c tools/libxl: rename remus checkpoint callbacks libxl/remus: introduce libxl__remus_setup libxl/remus: introduce libxl__remus_teardown libxl/remus: init checkpoint_callback in Remus checkpoint callback tools/libxl: move remus code into libxl_remus.c A tools/libxl: move save/restore code into libxl_dom_save.c libxl/save: Refactor libxl__domain_suspend_state tools/libxl: introduce enum type libxl_checkpointed_stream migration/save: pass checkpointed_stream from libxl to libxc tools/libxl: introduce libxl__domain_restore_device_model to load qemu state tools/libxl: check QEMU state before resume dm tools/libxl: Update libxl_domain_unpause() to support qemu-xen A tools/libxl: introduce libxl__domain_common_switch_qemu_logdirty() A tools/libxl: export logdirty_init tools/libx{l,c}: add back channel to libxc tools/libxl: rename remus device to checkpoint device A tools/libxl: adjust the indentation tools/libxl: store remus_ops in checkpoint device state tools/libxl: move remus state into a seperate structure tools/libxl: seperate device init/cleanup from checkpoint device layer tools/libxc/include/xenguest.h | 13 +- tools/libxc/xc_domain_restore.c | 4 +- tools/libxc/xc_domain_save.c | 6 +- tools/libxc/xc_nomigrate.c | 3 +- tools/libxc/xc_resume.c | 22 +- tools/libxc/xc_sr_common.h | 2 +- tools/libxc/xc_sr_restore.c | 2 +- tools/libxc/xc_sr_save.c | 5 +- tools/libxl/Makefile | 5 +- tools/libxl/libxl.c | 119 +--- tools/libxl/libxl.h | 30 +- tools/libxl/libxl_checkpoint_device.c | 282 ++++++++ tools/libxl/libxl_create.c | 33 +- tools/libxl/libxl_dom.c | 1243 --------------------------------- tools/libxl/libxl_dom_save.c | 721 +++++++++++++++++++ tools/libxl/libxl_dom_suspend.c | 503 +++++++++++++ tools/libxl/libxl_internal.h | 246 ++++--- tools/libxl/libxl_netbuffer.c | 117 ++-- tools/libxl/libxl_nonetbuffer.c | 10 +- tools/libxl/libxl_qmp.c | 10 + tools/libxl/libxl_remus.c | 395 +++++++++++ tools/libxl/libxl_remus_device.c | 327 --------- tools/libxl/libxl_remus_disk_drbd.c | 56 +- tools/libxl/libxl_save_callout.c | 43 +- tools/libxl/libxl_save_helper.c | 9 +- tools/libxl/libxl_stream_write.c | 14 +- tools/libxl/libxl_types.idl | 10 +- tools/libxl/xl_cmdimpl.c | 21 +- tools/ocaml/libs/xl/xenlight_stubs.c | 2 +- 29 files changed, 2321 insertions(+), 1932 deletions(-) create mode 100644 tools/libxl/libxl_checkpoint_device.c create mode 100644 tools/libxl/libxl_dom_save.c create mode 100644 tools/libxl/libxl_dom_suspend.c create mode 100644 tools/libxl/libxl_remus.c delete mode 100644 tools/libxl/libxl_remus_device.c -- 1.9.1