[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-
From: |
Dr. David Alan Gilbert |
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, 22 Apr 2016 11:42:31 +0100 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
* zhanghailiang (address@hidden) 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?
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?
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 <address@hidden>
>
> 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 / address@hidden / Manchester, UK
- [Qemu-devel] [PATCH COLO-Frame v16 15/35] COLO: Add checkpoint-delay parameter for migrate-set-parameters, (continued)
- [Qemu-devel] [PATCH COLO-Frame v16 15/35] COLO: Add checkpoint-delay parameter for migrate-set-parameters, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 08/35] COLO: Add a new RunState RUN_STATE_COLO, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 31/35] filter-buffer: Accept zero interval, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 29/35] COLO: Separate the process of saving/loading ram and device state, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 34/35] COLO: manage the status of buffer filters for PVM, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 35/35] COLO: Add block replication into colo process, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 33/35] COLO/filter: add each netdev a buffer filter, zhanghailiang, 2016/04/08
- [Qemu-devel] [PATCH COLO-Frame v16 22/35] COLO failover: Shutdown related socket fd when do failover, zhanghailiang, 2016/04/08
- Re: [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
- Re: [Qemu-devel] [PATCH COLO-Frame v16 for-2.7 00/35] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT),
Dr. David Alan Gilbert <=