All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: zhanghailiang <zhang.zhanghailiang@huawei.com>
Cc: qemu-devel@nongnu.org, amit.shah@redhat.com, quintela@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,
	zhangchen.fnst@cn.fujitsu.com, xiecl.fnst@cn.fujitsu.com,
	Jeff Cody <jcody@redhat.com>, Kevin Wolf <kwolf@redhat.com>,
	Max Reitz <mreitz@redhat.com>, Jason Wang <jasowang@redhat.com>
Subject: Re: [Qemu-devel] [PATCH COLO-Frame v17 00/34] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT)
Date: Tue, 7 Jun 2016 13:06:15 +0100	[thread overview]
Message-ID: <20160607120614.GB7065@work-vm> (raw)
In-Reply-To: <1464940366-9880-1-git-send-email-zhang.zhanghailiang@huawei.com>

* zhanghailiang (zhang.zhanghailiang@huawei.com) wrote:
> This is the 17th version of COLO FT feature.
> 
> Here is only COLO frame part, you can get the whole codes from github:
> https://github.com/coloft/qemu/commits/colo-v3.0-periodic-mode
> 
> Migration now switches to use the new QIOChannel API. It only affects COLO's
> patch 9 and patch 12, which we used the old qsb buffer before, and we updated
> them with the new API. It's only involving tiny changes.
> 
> Patch status:
> Unreviewed: patch 32 ~ 35
> Updated: patch 9, 12, 32

You've posted patches 1..34 - does 35 really exist?

Dave

> 
> Cc: Stefan Hajnoczi <stefanha@redhat.com>
> Cc: Jeff Cody <jcody@redhat.com>
> Cc: Kevin Wolf <kwolf@redhat.com>
> Cc: Max Reitz <mreitz@redhat.com>
> Cc: Juan Quintela <quintela@redhat.com>
> Cc: Amit Shah <amit.shah@redhat.com>
> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Cc: Jason Wang <jasowang@redhat.com>
> 
> PS: These series has been in community for a long time, it depends on
> Changlong's block-replicaton series, but that has been blocked for a long
> time, we really need help on reviewing that and this series.  Thanks.
> 
> TODO:
> 1. Checkpoint based on proxy in qemu
> 2. The capability of continuous FT
> 3. Optimize the VM's downtime during checkpoint
> 
> v17:
>  - Rebase master to use the new QIOChannel API, only affect patch 9 and 12
>  - Reorganize some ugly comments
>  - Rename colo_sem to colo_exit_sem (patch 21)
> 
> v16:
>  - Fix compile broken due to missing osdep.h
>  - Add reviewed-by tag for patch 27, 28, 29
>  - Rename the 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, 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 (34):
>   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
>   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 buffer 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: Control 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      |  43 +++
>  include/migration/failover.h  |  33 ++
>  include/migration/migration.h |  16 +
>  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              | 844 ++++++++++++++++++++++++++++++++++++++++++
>  migration/migration.c         |  84 ++++-
>  migration/ram.c               | 175 ++++++++-
>  migration/savevm.c            | 114 ++++--
>  net/filter-buffer.c           |  12 -
>  net/net.c                     |  12 +
>  qapi-schema.json              | 102 ++++-
>  qapi/event.json               |  15 +
>  qmp-commands.hx               |  24 +-
>  stubs/Makefile.objs           |   1 +
>  stubs/migration-colo.c        |  55 +++
>  trace-events                  |   8 +
>  vl.c                          |  31 +-
>  28 files changed, 1744 insertions(+), 63 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

  parent reply	other threads:[~2016-06-07 12:06 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-03  7:52 [Qemu-devel] [PATCH COLO-Frame v17 00/34] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 01/34] configure: Add parameter for configure to enable/disable COLO support zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 02/34] migration: Introduce capability 'x-colo' to migration zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 03/34] COLO: migrate colo related info to secondary node zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 04/34] migration: Integrate COLO checkpoint process into migration zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 05/34] migration: Integrate COLO checkpoint process into loadvm zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 06/34] COLO/migration: Create a new communication path from destination to source zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 07/34] COLO: Implement COLO checkpoint protocol zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 08/34] COLO: Add a new RunState RUN_STATE_COLO zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 09/34] COLO: Save PVM state to secondary side when do checkpoint zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 10/34] COLO: Load PVM's dirty pages into SVM's RAM cache temporarily zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 11/34] ram/COLO: Record the dirty pages that SVM received zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 12/34] COLO: Load VMState into buffer before restore it zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 13/34] COLO: Flush PVM's cached RAM into SVM's memory zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 14/34] COLO: Add checkpoint-delay parameter for migrate-set-parameters zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 15/34] COLO: Synchronize PVM's state to SVM periodically zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 16/34] COLO failover: Introduce a new command to trigger a failover zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 17/34] COLO failover: Introduce state to record failover process zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 18/34] COLO: Implement failover work for Primary VM zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 19/34] COLO: Implement failover work for Secondary VM zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 20/34] qmp event: Add COLO_EXIT event to notify users while exited from COLO zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 21/34] COLO failover: Shutdown related socket fd when do failover zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 22/34] COLO failover: Don't do failover during loading VM's state zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 23/34] COLO: Process shutdown command for VM in COLO state zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 24/34] COLO: Update the global runstate after going into colo state zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 25/34] savevm: Introduce two helper functions for save/find loadvm_handlers entry zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 26/34] migration/savevm: Add new helpers to process the different stages of loadvm zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 27/34] migration/savevm: Export two helper functions for savevm process zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 28/34] COLO: Separate the process of saving/loading ram and device state zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 29/34] COLO: Split qemu_savevm_state_begin out of checkpoint process zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 30/34] filter-buffer: Accept zero interval zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 31/34] net: Add notifier/callback for netdev init zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 32/34] COLO/filter: Add each netdev a buffer filter zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 33/34] COLO: Control the status of buffer filters for PVM zhanghailiang
2016-06-03  7:52 ` [Qemu-devel] [PATCH COLO-Frame v17 34/34] COLO: Add block replication into colo process zhanghailiang
2016-06-07 12:06 ` Dr. David Alan Gilbert [this message]
2016-06-08  0:47   ` [Qemu-devel] [PATCH COLO-Frame v17 00/34] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) Hailiang Zhang
2016-07-28 19:07 ` Dr. David Alan Gilbert
2016-07-29  0:41   ` Hailiang Zhang
2016-07-29  0:55     ` Changlong Xie
2016-07-29  0:55       ` 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=20160607120614.GB7065@work-vm \
    --to=dgilbert@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=eddie.dong@intel.com \
    --cc=hongyang.yang@easystack.cn \
    --cc=jasowang@redhat.com \
    --cc=jcody@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=mreitz@redhat.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 \
    --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.