From: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: peter.huangpeng@huawei.com, qemu-devel@nongnu.org,
amit.shah@redhat.com, quintela@redhat.com, eblake@redhat.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, zhangchen.fnst@cn.fujitsu.com,
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: Mon, 25 Apr 2016 17:28:15 +0800 [thread overview]
Message-ID: <571DE32F.1080608@huawei.com> (raw)
In-Reply-To: <20160422104230.GF2239@work-vm>
On 2016/4/22 18:42, Dr. David Alan Gilbert wrote:
> * zhanghailiang (zhang.zhanghailiang@huawei.com) wrote:
>> This is the 16th version of COLO (Still only support periodic checkpoint).
>
> OK, so the main migration code in here looks OK now (still need
> one block R-b's and the net R-b's from Jason) - which of the other COLO
> patch series does this depend on?
>
Yes, you are right.
> It doesn't need Zhang Chen's COLO-Compare - that's all for the later real colo world;
> but I assume it depends on Changlong Xie's Block replication world?
>
We need the Block part to realize the basic checkpoint capability. But it seems that
the reviewing process is too slow :( .
> Dave
>
>>
>> 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
>>
>> 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
>>
>> --
>> 1.8.3.1
>>
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
> .
>
prev parent reply other threads:[~2016-04-25 9:31 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 ` [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) Zhang Chen
2016-04-08 8:49 ` Hailiang Zhang
2016-04-22 10:42 ` Dr. David Alan Gilbert
2016-04-25 9:28 ` Hailiang Zhang [this message]
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=571DE32F.1080608@huawei.com \
--to=zhang.zhanghailiang@huawei.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=zhangchen.fnst@cn.fujitsu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.