[Top][All Lists]

[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: Hailiang Zhang
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 16:49:56 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

On 2016/4/8 15:58, Zhang Chen wrote:

在 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:


I have updated it in github.


Hi~ Hailiang.

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

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 <address@hidden>

1. Checkpoint based on proxy in qemu
2. The capability of continuous FT
3. Optimize the VM's downtime during checkpoint

   - 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)
   - 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)
   - 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.

   - 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
    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
    migration/savevm: Add new helpers to process the different stages of
    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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]