Message ID | 20180514165424.12884-1-zhangckid@gmail.com |
---|---|
Headers | show |
Series | COLO: integrate colo frame with block replication and COLO proxy | expand |
Hi Jason, Patches 1,2,3,14,15 seem mostly networky to me; can you have a look? Dave * Zhang Chen (zhangckid@gmail.com) wrote: > The RESEND version just fix code style in patch 11/17. > > Hi~ All~ > > COLO Frame, block replication and COLO proxy(colo-compare,filter-mirror, > filter-redirector,filter-rewriter) have been exist in qemu > for long time, it's time to integrate these three parts to make COLO really works. > > In this series, we have some optimizations for COLO frame, including separating the > process of saving ram and device state, using an COLO_EXIT event to notify users that > VM exits COLO, for these parts, most of them have been reviewed long time ago in old version, > but since this series have just rebased on upstream which had merged a new series of migration, > parts of pathes in this series deserve review again. > > We use notifier/callback method for COLO compare to notify COLO frame about > net packets inconsistent event, and add a handle_event method for NetFilterClass to > help COLO frame to notify filters and colo-compare about checkpoint/failover event, > it is flexible. > > For the neweset version, please refer to: > https://github.com/zhangckid/qemu/tree/qemu-colo-18may1-rebase > > Please review, thanks. > > V7: > - Addressed Markus's comments in 11/17. > - Rebased on upstream. > > V6: > - Addressed Eric Blake's comments, use the enum to feedback in patch 11/17. > - Fixed QAPI command separator problem in patch 11/17. > > > Zhang Chen (12): > filter-rewriter: fix memory leak for connection in > connection_track_table > colo-compare: implement the process of checkpoint > colo-compare: use notifier to notify packets comparing result > COLO: integrate colo compare with colo frame > COLO: Add block replication into colo process > COLO: Remove colo_state migration struct > COLO: Load dirty pages into SVM's RAM cache firstly > ram/COLO: Record the dirty pages that SVM received > COLO: Flush memory data from ram cache > qapi: Add new command to query colo status > filter: Add handle_event method for NetFilterClass > filter-rewriter: handle checkpoint and failover event > > zhanghailiang (5): > qmp event: Add COLO_EXIT event to notify users while exited COLO > savevm: split the process of different stages for loadvm/savevm > COLO: flush host dirty ram from cache > COLO: notify net filters about checkpoint/failover event > COLO: quick failover process by kick COLO thread > > include/exec/ram_addr.h | 1 + > include/migration/colo.h | 11 +- > include/net/filter.h | 5 + > migration/Makefile.objs | 2 +- > migration/colo-comm.c | 76 -------------- > migration/colo.c | 219 +++++++++++++++++++++++++++++++++++++-- > migration/migration.c | 38 ++++++- > migration/ram.c | 183 +++++++++++++++++++++++++++++++- > migration/ram.h | 4 + > migration/savevm.c | 55 ++++++++-- > migration/savevm.h | 5 + > migration/trace-events | 3 + > net/colo-compare.c | 108 +++++++++++++++++-- > net/colo-compare.h | 24 +++++ > net/colo.h | 4 + > net/filter-rewriter.c | 109 +++++++++++++++++-- > net/filter.c | 17 +++ > net/net.c | 28 +++++ > qapi/migration.json | 70 +++++++++++++ > vl.c | 2 - > 20 files changed, 846 insertions(+), 118 deletions(-) > delete mode 100644 migration/colo-comm.c > create mode 100644 net/colo-compare.h > > -- > 2.17.0 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 2018年05月16日 19:18, Dr. David Alan Gilbert wrote: > Hi Jason, > Patches 1,2,3,14,15 seem mostly networky to me; can you have a look? > > Dave Sure, will review. Thanks > > * Zhang Chen (zhangckid@gmail.com) wrote: >> The RESEND version just fix code style in patch 11/17. >> >> Hi~ All~ >> >> COLO Frame, block replication and COLO proxy(colo-compare,filter-mirror, >> filter-redirector,filter-rewriter) have been exist in qemu >> for long time, it's time to integrate these three parts to make COLO really works. >> >> In this series, we have some optimizations for COLO frame, including separating the >> process of saving ram and device state, using an COLO_EXIT event to notify users that >> VM exits COLO, for these parts, most of them have been reviewed long time ago in old version, >> but since this series have just rebased on upstream which had merged a new series of migration, >> parts of pathes in this series deserve review again. >> >> We use notifier/callback method for COLO compare to notify COLO frame about >> net packets inconsistent event, and add a handle_event method for NetFilterClass to >> help COLO frame to notify filters and colo-compare about checkpoint/failover event, >> it is flexible. >> >> For the neweset version, please refer to: >> https://github.com/zhangckid/qemu/tree/qemu-colo-18may1-rebase >> >> Please review, thanks. >> >> V7: >> - Addressed Markus's comments in 11/17. >> - Rebased on upstream. >> >> V6: >> - Addressed Eric Blake's comments, use the enum to feedback in patch 11/17. >> - Fixed QAPI command separator problem in patch 11/17. >> >> >> Zhang Chen (12): >> filter-rewriter: fix memory leak for connection in >> connection_track_table >> colo-compare: implement the process of checkpoint >> colo-compare: use notifier to notify packets comparing result >> COLO: integrate colo compare with colo frame >> COLO: Add block replication into colo process >> COLO: Remove colo_state migration struct >> COLO: Load dirty pages into SVM's RAM cache firstly >> ram/COLO: Record the dirty pages that SVM received >> COLO: Flush memory data from ram cache >> qapi: Add new command to query colo status >> filter: Add handle_event method for NetFilterClass >> filter-rewriter: handle checkpoint and failover event >> >> zhanghailiang (5): >> qmp event: Add COLO_EXIT event to notify users while exited COLO >> savevm: split the process of different stages for loadvm/savevm >> COLO: flush host dirty ram from cache >> COLO: notify net filters about checkpoint/failover event >> COLO: quick failover process by kick COLO thread >> >> include/exec/ram_addr.h | 1 + >> include/migration/colo.h | 11 +- >> include/net/filter.h | 5 + >> migration/Makefile.objs | 2 +- >> migration/colo-comm.c | 76 -------------- >> migration/colo.c | 219 +++++++++++++++++++++++++++++++++++++-- >> migration/migration.c | 38 ++++++- >> migration/ram.c | 183 +++++++++++++++++++++++++++++++- >> migration/ram.h | 4 + >> migration/savevm.c | 55 ++++++++-- >> migration/savevm.h | 5 + >> migration/trace-events | 3 + >> net/colo-compare.c | 108 +++++++++++++++++-- >> net/colo-compare.h | 24 +++++ >> net/colo.h | 4 + >> net/filter-rewriter.c | 109 +++++++++++++++++-- >> net/filter.c | 17 +++ >> net/net.c | 28 +++++ >> qapi/migration.json | 70 +++++++++++++ >> vl.c | 2 - >> 20 files changed, 846 insertions(+), 118 deletions(-) >> delete mode 100644 migration/colo-comm.c >> create mode 100644 net/colo-compare.h >> >> -- >> 2.17.0 >> > -- > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK >