From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUUyD-0001t2-Bo for qemu-devel@nongnu.org; Tue, 02 Aug 2016 04:22:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUUy8-0000XX-Eg for qemu-devel@nongnu.org; Tue, 02 Aug 2016 04:22:37 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42148) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUUy8-0000XO-5V for qemu-devel@nongnu.org; Tue, 02 Aug 2016 04:22:32 -0400 References: <1469700748-19754-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> From: Jason Wang Message-ID: <93b51fcd-53b3-88df-cde8-4d2b85c45fa7@redhat.com> Date: Tue, 2 Aug 2016 16:14:55 +0800 MIME-Version: 1.0 In-Reply-To: <1469700748-19754-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH V11 0/9] Introduce COLO-compare and filter-rewriter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Zhang Chen , qemu devel Cc: Li Zhijian , Wen Congyang , zhanghailiang , "eddie . dong" , "Dr . David Alan Gilbert" On 2016=E5=B9=B407=E6=9C=8828=E6=97=A5 18:12, Zhang Chen wrote: > COLO-compare is a part of COLO project. It is used > to compare the network package to help COLO decide > whether to do checkpoint. > > Filter-rewriter is a part of COLO project too. > It will rewrite some of secondary packet to make > secondary guest's connection established successfully. > In this module we will rewrite tcp packet's ack to the secondary > from primary,and rewrite tcp packet's seq to the primary from > secondary. > > This series depend on > [PATCH V3] qemu-char: Add qemu_chr_add_handlers_full() for GMaincontext > > The full version in this github: > https://github.com/zhangckid/qemu/tree/colo-v2.7-proxy-mode-compare-and= -rewriter-jul28 Thanks for the series, I've finished v10's reviewing, and reply there.=20 Looks like most comments apply to this series too. So I won't reply it=20 again, please see the comments there. For filter-rewriter part, I will=20 reply in this version. Thanks > > v11: > - Make patch 5 to a independent patch series. > [PATCH V3] qemu-char: Add qemu_chr_add_handlers_full() for GMainco= ntext > - For Jason's comments, merge filter-rewriter to this series. > (patch 7,8,9) > - Add reverse_connection_key() > - remove conn_list in filter-rewriter > - remove unprocessed_connections > - add some comments > > v10: > - fix typo > - Should we make patch 5 independent with this series? > This patch just add a API for qemu-char. > > v9: > p5: > - use chr_update_read_handler_full() replace > the chr_update_read_handler() > - use io_watch_poll_prepare_full() replace > the io_watch_poll_prepare() > - use io_watch_poll_funcs_full replace > the io_watch_poll_funcs > - avoid code duplication > > v8: > p5: > - add new patch: > qemu-char: Add qemu_chr_add_handlers_full() for GMaincontext > > v7: > p5: > - add [PATCH]qemu-char: Fix context for g_source_attach() > in this patch series. > > v6: > p6: > - add more commit log. > - fix icmp comparison to compare all packet. > > p5: > - add more cpmments in commit log. > - change REGULAR_CHECK_MS to REGULAR_PACKET_CHECK_MS > - make check old packet independent to compare thread > - remove thread_status > > p4: > - change this patch only about > Connection and ConnectionKey. > - add some comments in commit log. > - remove mode in fill_connection_key(). > - fix some comments and bug. > - move colo_conn_state to patch of > "work with colo-frame" > - remove conn_list_lock. > - add MAX_QUEUE_SIZE, if primary_list or > secondary_list biger than MAX_QUEUE_SIZE > we will drop packet. > > p3: > - add new independent kernel jhash patch. > > p2: > - add new independent colo-base patch. > > p1: > - add a ascii figure and some comments to explain it > - move trace.h to p2 > - move QTAILQ_HEAD(, CompareState) net_compares to > patch of "work with colo-frame" > - add some comments in qemu-option.hx > > > v5: > p3: > - comments from Jason > we poll and handle chardev in comapre thread, > Through this way, there's no need for extra > synchronization with main loop > this depend on another patch: > qemu-char: Fix context for g_source_attach() > - remove QemuEvent > p2: > - remove conn->list_lock > p1: > - move compare_pri/sec_chr_in to p3 > - move compare_chr_send to p2 > > v4: > p4: > - add some comments > - fix some trace-events > - fix tcp compare error > p3: > - add rcu_read_lock(). > - fix trace name > - fix jason's other comments > - rebase some Dave's branch function > p2: > - colo_compare_connection() change g_queue_push_head() to > - g_queue_push_tail() match to sorted order. > - remove pkt->s > - move data structure to colo-base.h > - add colo-base.c reuse codes for filter-rewriter > - add some filter-rewriter needs struct > - depends on previous SocketReadState patch > p1: > - except move qemu_chr_add_handlers() > to colo thread > - remove class_finalize > - remove secondary arp codes > - depends on previous SocketReadState patch > > v3: > - rebase colo-compare to colo-frame v2.7 > - fix most of Dave's comments > (except RCU) > - add TCP,UDP,ICMP and other packet comparison > - add trace-event > - add some comments > - other bug fix > - add RFC index > - add usage in patch 1/4 > > v2: > - add jhash.h > > v1: > - initial patch > > > Zhang Chen (9): > colo-compare: introduce colo compare initialization > colo-base: add colo-base to define and handle packet > Jhash: add linux kernel jhashtable in qemu > colo-compare: track connection and enqueue packet > colo-compare: introduce packet comparison thread > colo-compare: add TCP,UDP,ICMP packet comparison > filter-rewriter: introduce filter-rewriter initialization > filter-rewriter: track connection and parse packet > filter-rewriter: rewrite tcp packet to keep secondary connection > > include/qemu/jhash.h | 61 ++++ > net/Makefile.objs | 3 + > net/colo-base.c | 199 +++++++++++++ > net/colo-base.h | 76 +++++ > net/colo-compare.c | 763 +++++++++++++++++++++++++++++++++++++++++= +++++++++ > net/filter-rewriter.c | 272 ++++++++++++++++++ > qemu-options.hx | 51 ++++ > trace-events | 14 + > vl.c | 4 +- > 9 files changed, 1442 insertions(+), 1 deletion(-) > create mode 100644 include/qemu/jhash.h > create mode 100644 net/colo-base.c > create mode 100644 net/colo-base.h > create mode 100644 net/colo-compare.c > create mode 100644 net/filter-rewriter.c >