qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Zhang Chen <zhangchen.fnst@cn.fujitsu.com>
To: zhanghailiang <zhang.zhanghailiang@huawei.com>, qemu-devel@nongnu.org
Cc: amit.shah@redhat.com, quintela@redhat.com, dgilbert@redhat.com,
	eblake@redhat.com, peter.huangpeng@huawei.com,
	eddie.dong@intel.com, yunhong.jiang@intel.com,
	wency@cn.fujitsu.com, lizhijian@cn.fujitsu.com,
	arei.gonglei@huawei.com, stefanha@redhat.com,
	hongyang.yang@easystack.cn, xiecl.fnst@cn.fujitsu.com,
	armbru@redhat.com, Jason Wang <jasowang@redhat.com>
Subject: Re: [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT)
Date: Fri, 8 Apr 2016 15:58:35 +0800	[thread overview]
Message-ID: <570764AB.3060203@cn.fujitsu.com> (raw)
In-Reply-To: <1460096797-14916-1-git-send-email-zhang.zhanghailiang@huawei.com>



在 04/08/2016 02:26 PM, zhanghailiang 写道:
> This is the 16th version of COLO (Still only support periodic checkpoint).
>
> Here is only COLO frame part, you can get the whole codes from github:
> https://github.com/coloft/qemu/commits/colo-v2.7-periodic-mode

Hi~ Hailiang.

I get a 404 not found, please update this new branch~

Thanks
Zhang Chen

> There are little changes for this series except the netfilter releated part.
>
> Patch status:
> Unreviewed: patch 21, 32 ~ 35
> Updated: patch 7, 13, 32 ~ 35
>
> Cc: Jason Wang <jasowang@redhat.com>
>
> TODO:
> 1. Checkpoint based on proxy in qemu
> 2. The capability of continuous FT
> 3. Optimize the VM's downtime during checkpoint
>
> v16:
>   - Fix compile broken due to missing osdep.h
>   - Add reviewed-by tag for patch 27, 28, 29
>   - Rename the COLO message send/receive helper function (patch 7, 13)
>   - Simplify the codes by using some notifier helpers in QEMU (patch 32)
>   - Remove the useless check in colo_add_buffer_filter() (patch 33)
>   - Remove the previous patch 36, 37 which export filter_buffer_flush()
>     to release the buffered packets for COLO, we simplify it by stopping
>     buffer filter while doing checkpoint, which will flush the buffered
>     packets by default. (patch 34)
> v15:
>   - Go on the shutdown process if encounter error while sending shutdown
>     message to SVM. (patch 24)
>   - Rename qemu_need_skip_netfilter to qemu_netfilter_can_skip and Remove
>     some useless comment. (patch 31, Jason)
>   - Call object_new_with_props() directly to add filter in
>     colo_add_buffer_filter. (patch 34, Jason)
>   - Re-implement colo_set_filter_status() based on COLOBufferFilters
>     list. (patch 35)
>   - Re-implement colo_flush_filter_packets() based on COLOBufferFilters
>     list. (patch 37)
> v14:
>   - Re-implement the network processing based on netfilter (Jason Wang)
>   - Rename 'COLOCommand' to 'COLOMessage'. (Markus's suggestion)
>   - Split two new patches (patch 27/28) from patch 29
>   - Fix some other comments from Dave and Markus.
>
> v13:
>   - Refactor colo_*_cmd helper functions to use 'Error **errp' parameter
>    instead of return value to indicate success or failure. (patch 10)
>   - Remove the optional error message for COLO_EXIT event. (patch 25)
>   - Use semaphore to notify colo/colo incoming loop that failover work is
>     finished. (patch 26)
>   - Move COLO shutdown related codes to colo.c file. (patch 28)
>   - Fix memory leak bug for colo incoming loop. (new patch 31)
>   - Re-use some existed helper functions to realize the process of
>     saving/loading ram and device. (patch 32)
>   - Fix some other comments from Dave and Markus.
>
> zhanghailiang (35):
>    configure: Add parameter for configure to enable/disable COLO support
>    migration: Introduce capability 'x-colo' to migration
>    COLO: migrate colo related info to secondary node
>    migration: Integrate COLO checkpoint process into migration
>    migration: Integrate COLO checkpoint process into loadvm
>    COLO/migration: Create a new communication path from destination to
>      source
>    COLO: Implement colo checkpoint protocol
>    COLO: Add a new RunState RUN_STATE_COLO
>    QEMUSizedBuffer: Introduce two help functions for qsb
>    COLO: Save PVM state to secondary side when do checkpoint
>    COLO: Load PVM's dirty pages into SVM's RAM cache temporarily
>    ram/COLO: Record the dirty pages that SVM received
>    COLO: Load VMState into qsb before restore it
>    COLO: Flush PVM's cached RAM into SVM's memory
>    COLO: Add checkpoint-delay parameter for migrate-set-parameters
>    COLO: synchronize PVM's state to SVM periodically
>    COLO failover: Introduce a new command to trigger a failover
>    COLO failover: Introduce state to record failover process
>    COLO: Implement failover work for Primary VM
>    COLO: Implement failover work for Secondary VM
>    qmp event: Add COLO_EXIT event to notify users while exited from COLO
>    COLO failover: Shutdown related socket fd when do failover
>    COLO failover: Don't do failover during loading VM's state
>    COLO: Process shutdown command for VM in COLO state
>    COLO: Update the global runstate after going into colo state
>    savevm: Introduce two helper functions for save/find loadvm_handlers
>      entry
>    migration/savevm: Add new helpers to process the different stages of
>      loadvm
>    migration/savevm: Export two helper functions for savevm process
>    COLO: Separate the process of saving/loading ram and device state
>    COLO: Split qemu_savevm_state_begin out of checkpoint process
>    filter-buffer: Accept zero interval
>    net: Add notifier/callback for netdev init
>    COLO/filter: add each netdev a buffer filter
>    COLO: manage the status of buffer filters for PVM
>    COLO: Add block replication into colo process
>
>   configure                     |  11 +
>   docs/qmp-events.txt           |  16 +
>   hmp-commands.hx               |  15 +
>   hmp.c                         |  15 +
>   hmp.h                         |   1 +
>   include/exec/ram_addr.h       |   1 +
>   include/migration/colo.h      |  42 +++
>   include/migration/failover.h  |  33 ++
>   include/migration/migration.h |  16 +
>   include/migration/qemu-file.h |   3 +-
>   include/net/filter.h          |   2 +
>   include/net/net.h             |   3 +
>   include/sysemu/sysemu.h       |   9 +
>   migration/Makefile.objs       |   2 +
>   migration/colo-comm.c         |  79 ++++
>   migration/colo-failover.c     |  84 +++++
>   migration/colo.c              | 855 ++++++++++++++++++++++++++++++++++++++++++
>   migration/migration.c         |  90 ++++-
>   migration/qemu-file-buf.c     |  61 +++
>   migration/ram.c               | 175 ++++++++-
>   migration/savevm.c            | 114 ++++--
>   net/filter-buffer.c           |  12 -
>   net/net.c                     |  12 +
>   qapi-schema.json              | 104 ++++-
>   qapi/event.json               |  15 +
>   qmp-commands.hx               |  24 +-
>   stubs/Makefile.objs           |   1 +
>   stubs/migration-colo.c        |  55 +++
>   trace-events                  |   8 +
>   vl.c                          |  31 +-
>   30 files changed, 1824 insertions(+), 65 deletions(-)
>   create mode 100644 include/migration/colo.h
>   create mode 100644 include/migration/failover.h
>   create mode 100644 migration/colo-comm.c
>   create mode 100644 migration/colo-failover.c
>   create mode 100644 migration/colo.c
>   create mode 100644 stubs/migration-colo.c
>

-- 
Thanks
zhangchen

  parent reply	other threads:[~2016-04-08  7:58 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-08  6:26 [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 01/35] configure: Add parameter for configure to enable/disable COLO support zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 02/35] migration: Introduce capability 'x-colo' to migration zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 03/35] COLO: migrate colo related info to secondary node zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 04/35] migration: Integrate COLO checkpoint process into migration zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 05/35] migration: Integrate COLO checkpoint process into loadvm zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 06/35] COLO/migration: Create a new communication path from destination to source zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 07/35] COLO: Implement colo checkpoint protocol zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 08/35] COLO: Add a new RunState RUN_STATE_COLO zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 09/35] QEMUSizedBuffer: Introduce two help functions for qsb zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 10/35] COLO: Save PVM state to secondary side when do checkpoint zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 11/35] COLO: Load PVM's dirty pages into SVM's RAM cache temporarily zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 12/35] ram/COLO: Record the dirty pages that SVM received zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 13/35] COLO: Load VMState into qsb before restore it zhanghailiang
2016-04-22 10:12   ` Dr. David Alan Gilbert
2016-04-25  9:17     ` Hailiang Zhang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 14/35] COLO: Flush PVM's cached RAM into SVM's memory zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 15/35] COLO: Add checkpoint-delay parameter for migrate-set-parameters zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 16/35] COLO: synchronize PVM's state to SVM periodically zhanghailiang
2016-04-12  3:02   ` Li Zhijian
2016-04-12 13:01     ` Hailiang Zhang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 17/35] COLO failover: Introduce a new command to trigger a failover zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 18/35] COLO failover: Introduce state to record failover process zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 19/35] COLO: Implement failover work for Primary VM zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 20/35] COLO: Implement failover work for Secondary VM zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 21/35] qmp event: Add COLO_EXIT event to notify users while exited from COLO zhanghailiang
2016-04-22 14:25   ` Eric Blake
2016-04-25  9:33     ` Hailiang Zhang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 22/35] COLO failover: Shutdown related socket fd when do failover zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 23/35] COLO failover: Don't do failover during loading VM's state zhanghailiang
2016-05-06  9:09   ` Changlong Xie
2016-05-06 11:07     ` Hailiang Zhang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 24/35] COLO: Process shutdown command for VM in COLO state zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 25/35] COLO: Update the global runstate after going into colo state zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 26/35] savevm: Introduce two helper functions for save/find loadvm_handlers entry zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 27/35] migration/savevm: Add new helpers to process the different stages of loadvm zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 28/35] migration/savevm: Export two helper functions for savevm process zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 29/35] COLO: Separate the process of saving/loading ram and device state zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 30/35] COLO: Split qemu_savevm_state_begin out of checkpoint process zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 31/35] filter-buffer: Accept zero interval zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 32/35] net: Add notifier/callback for netdev init zhanghailiang
2016-04-21  0:30   ` Hailiang Zhang
2016-04-26  6:59     ` Jason Wang
2016-04-26  6:48   ` Jason Wang
2016-05-04  8:18     ` Hailiang Zhang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 33/35] COLO/filter: add each netdev a buffer filter zhanghailiang
2016-04-26  6:58   ` Jason Wang
2016-05-04  8:22     ` Hailiang Zhang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 34/35] COLO: manage the status of buffer filters for PVM zhanghailiang
2016-04-08  6:26 ` [Qemu-devel] [PATCH COLO-Frame v16 35/35] COLO: Add block replication into colo process zhanghailiang
2016-04-08  7:58 ` Zhang Chen [this message]
2016-04-08  8:49   ` [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) Hailiang Zhang
2016-04-22 10:42 ` Dr. David Alan Gilbert
2016-04-25  9:28   ` Hailiang Zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=570764AB.3060203@cn.fujitsu.com \
    --to=zhangchen.fnst@cn.fujitsu.com \
    --cc=amit.shah@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=eblake@redhat.com \
    --cc=eddie.dong@intel.com \
    --cc=hongyang.yang@easystack.cn \
    --cc=jasowang@redhat.com \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    --cc=wency@cn.fujitsu.com \
    --cc=xiecl.fnst@cn.fujitsu.com \
    --cc=yunhong.jiang@intel.com \
    --cc=zhang.zhanghailiang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).