Re: [Qemu-devel] [PATCH COLO-Frame v19 00/22] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT)
On 2016/9/10 16:21, Amit Shah wrote: Hi, On (Fri) 09 Sep 2016 [14:45:36], Hailiang Zhang wrote: ping ? Juan will start reviewing and picking patches soon. Great, and the pull request of block replication series has been sent by Stefan, so there is no obstacle to impede this series to be merged into upstream. Thanks very much ;) .
Re: [Qemu-devel] [PATCH COLO-Frame v19 00/22] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT)
Hi, On (Fri) 09 Sep 2016 [14:45:36], Hailiang Zhang wrote: > ping ? Juan will start reviewing and picking patches soon.
Re: [Qemu-devel] [PATCH COLO-Frame v19 00/22] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT)
ping ? On 2016/9/1 11:24, zhanghailiang wrote: This is the 19th version of COLO frame series. According to the suggestion of Juan and Amit, I dropped parts of the optimization patches to make it easier for review. Besides, I discarded the network related patches since the development of COLO proxy goes well, It is very likely to be merged in QEMU 2.8, Please see [PATCH V12 02/10] colo-compare: introduce colo compare initialization for more information. The original network related patches in this series are to buffer the network packets till a checkpointing be successfully achieved, just like Remus does in XEN, but these patches will be reverted in COLO compare series. So here, it is unnecessary to add them. You can still test this series like before. Or refer to docs/COLO-FT.txt. It is based on 'Block replication' series which has been merged in Stefan's branch https://github.com/stefanha/qemu/commits/block-next. The complete codes can be found from the link: https://github.com/coloft/qemu/commits/colo-v4.1-periodic-mode Please review. Thanks ;) TODO: 1. Checkpoint based on proxy in qemu 2. The capability of continuous FT 3. Optimize the VM's downtime during checkpoint v19: - Add documentation about COLO (patch 21) - Dropped network related patches - Fix parts of patches' title and comments zhanghailiang (22): migration: Introduce capability 'x-colo' to migration COLO: migrate COLO related info to secondary node migration: Enter into COLO mode after migration if COLO is enabled migration: Switch to COLO process after finishing loadvm COLO: Establish a new communicating path for COLO COLO: Introduce checkpointing protocol COLO: Add a new RunState RUN_STATE_COLO COLO: Send PVM state to secondary side when do checkpoint COLO: Load VMState into QIOChannelBuffer before restore it COLO: Add checkpoint-delay parameter for migrate-set-parameters COLO: Synchronize PVM's state to SVM periodically COLO: Add 'x-colo-lost-heartbeat' command to trigger failover COLO: Introduce state to record failover process COLO: Implement the process of failover for primary VM COLO: Implement failover work for secondary VM COLO: Shutdown related socket fd while do failover COLO: Don't do failover while loading VM's state COLO: Handle shutdown command for VM in COLO state COLO: Update the global runstate after going into colo state COLO: Add block replication into colo process docs: Add documentation for COLO feature configure: Support enable/disable COLO feature configure | 11 + docs/COLO-FT.txt | 190 hmp-commands.hx | 15 + hmp.c | 15 + hmp.h | 1 + include/migration/colo.h | 40 +++ include/migration/failover.h | 33 ++ include/migration/migration.h | 11 + include/sysemu/sysemu.h | 3 + migration/Makefile.objs | 2 + migration/colo-comm.c | 72 + migration/colo-failover.c | 84 + migration/colo.c | 694 ++ migration/migration.c | 86 +- migration/ram.c | 37 ++- migration/trace-events| 6 + qapi-schema.json | 88 +- qmp-commands.hx | 24 +- stubs/Makefile.objs | 1 + stubs/migration-colo.c| 51 vl.c | 30 +- 21 files changed, 1468 insertions(+), 26 deletions(-) create mode 100644 docs/COLO-FT.txt 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
Re: [Qemu-devel] [PATCH COLO-Frame v19 00/22] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT)
Hi, Your series failed automatic build test. Please find the testing commands and their output below. If you have docker installed, you can probably reproduce it locally. Subject: [Qemu-devel] [PATCH COLO-Frame v19 00/22] COarse-grain LOck-stepping(COLO) Virtual Machines for Non-stop Service (FT) Type: series Message-id: 1472700265-16760-1-git-send-email-zhang.zhanghaili...@huawei.com === TEST SCRIPT BEGIN === #!/bin/bash set -e git submodule update --init dtc make J=8 docker-test-quick@centos6 make J=8 docker-test-mingw@fedora === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 Switched to a new branch 'test' 42c65a0 configure: Support enable/disable COLO feature 4e337ab docs: Add documentation for COLO feature e54092d COLO: Add block replication into colo process d58788e COLO: Update the global runstate after going into colo state d16cb12 COLO: Handle shutdown command for VM in COLO state f310213 COLO: Don't do failover while loading VM's state fb716cc COLO: Shutdown related socket fd while do failover 6a50027 COLO: Implement failover work for secondary VM ecc5fd3 COLO: Implement the process of failover for primary VM ac596c7 COLO: Introduce state to record failover process 4da078e COLO: Add 'x-colo-lost-heartbeat' command to trigger failover 4b1c6e6 COLO: Synchronize PVM's state to SVM periodically c29d4f3 COLO: Add checkpoint-delay parameter for migrate-set-parameters 672e55a COLO: Load VMState into QIOChannelBuffer before restore it ec8130b COLO: Send PVM state to secondary side when do checkpoint ca88227 COLO: Add a new RunState RUN_STATE_COLO a3c6044 COLO: Introduce checkpointing protocol 4772fcd COLO: Establish a new communicating path for COLO 05e2b8c migration: Switch to COLO process after finishing loadvm b970b41 migration: Enter into COLO mode after migration if COLO is enabled 4c33192 COLO: migrate COLO related info to secondary node d596fff migration: Introduce capability 'x-colo' to migration === OUTPUT BEGIN === Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc' Cloning into 'dtc'... Submodule path 'dtc': checked out '65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf' BUILD centos6 ARCHIVE qemu.tgz ARCHIVE dtc.tgz COPY RUNNER RUN test-quick in centos6 No C++ compiler available; disabling C++ specific optional code Install prefix/tmp/qemu-test/src/tests/docker/install BIOS directory/tmp/qemu-test/src/tests/docker/install/share/qemu binary directory /tmp/qemu-test/src/tests/docker/install/bin library directory /tmp/qemu-test/src/tests/docker/install/lib module directory /tmp/qemu-test/src/tests/docker/install/lib/qemu libexec directory /tmp/qemu-test/src/tests/docker/install/libexec include directory /tmp/qemu-test/src/tests/docker/install/include config directory /tmp/qemu-test/src/tests/docker/install/etc local state directory /tmp/qemu-test/src/tests/docker/install/var Manual directory /tmp/qemu-test/src/tests/docker/install/share/man ELF interp prefix /usr/gnemul/qemu-%M Source path /tmp/qemu-test/src C compilercc Host C compiler cc C++ compiler Objective-C compiler cc ARFLAGS rv CFLAGS-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -g QEMU_CFLAGS -I/usr/include/pixman-1-fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g make make install install pythonpython -B smbd /usr/sbin/smbd module supportno host CPU x86_64 host big endian no target list x86_64-softmmu aarch64-softmmu tcg debug enabled no gprof enabled no sparse enabledno strip binariesyes profiler no static build no pixmansystem SDL support yes (1.2.14) GTK support no GTK GL supportno VTE support no TLS priority NORMAL GNUTLS supportno GNUTLS rndno libgcrypt no libgcrypt kdf no nettleno nettle kdfno libtasn1 no curses supportno virgl support no curl support no mingw32 support no Audio drivers oss Block whitelist (rw) Block whitelist (ro) VirtFS supportno VNC support yes VNC SASL support no VNC JPEG support no VNC PNG support no xen support no brlapi supportno bluez supportno Documentation no PIE yes vde support no netmap supportno Linux AIO support no ATTR/XATTR support yes Install blobs yes KVM support yes COLO support yes RDMA support