qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
To: Changlong Xie <xiecl.fnst@cn.fujitsu.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: peter.huangpeng@huawei.com, qemu-devel@nongnu.org,
	amit.shah@redhat.com, quintela@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, 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: Fri, 29 Jul 2016 08:55:33 +0800	[thread overview]
Message-ID: <579AA985.10703@huawei.com> (raw)
In-Reply-To: <579AA98C.4030002@cn.fujitsu.com>

On 2016/7/29 8:55, Changlong Xie wrote:
> On 07/29/2016 08:41 AM, Hailiang Zhang wrote:
>> On 2016/7/29 3:07, Dr. David Alan Gilbert wrote:
>>> * 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.
>>>
>>> I notice that the block code has nearly been accepted; so perhaps it's
>>> worth posting a version rebased on the current rc and then hopefully
>>> we can line this core code up for the start of 2.8 as soon as the block
>>> code lands.
>>>
>>
>> Yes, thanks for reminding, I'll post next version in the next few days.
>>
>
> Hi hailiang
>
> Just a warm reminder. Since colo framework bases on replication, and the
> replication feature is #optional. Maybe you need check
> CONFIG_REPLICATION in your new version.
>

OK, i noticed that, thanks.

> https://github.com//Pating/qemu/tree/block-replication-v24, see
> "configure: support replication"
>
> Thanks
> 	-Xie
>
>> Hailiang
>>
>>> Dave
>>>
>>>> Patch status:
>>>> Unreviewed: patch 32 ~ 35
>>>> Updated: patch 9, 12, 32
>>>>
>>>> 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
>>>
>>> .
>>>
>>
>>
>>
>> .
>>
>
>
>
> .
>

      reply	other threads:[~2016-07-29  0:56 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 ` [Qemu-devel] [PATCH COLO-Frame v17 00/34] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) Dr. David Alan Gilbert
2016-06-08  0:47   ` 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 [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=579AA985.10703@huawei.com \
    --to=zhang.zhanghailiang@huawei.com \
    --cc=amit.shah@redhat.com \
    --cc=arei.gonglei@huawei.com \
    --cc=dgilbert@redhat.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=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 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).