From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bclaa-0007Yt-Gm for qemu-devel@nongnu.org; Wed, 24 Aug 2016 23:44:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bclaX-0005TP-9t for qemu-devel@nongnu.org; Wed, 24 Aug 2016 23:44:24 -0400 Received: from [59.151.112.132] (port=3233 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bclaW-0005SO-9f for qemu-devel@nongnu.org; Wed, 24 Aug 2016 23:44:21 -0400 References: <1471421428-26379-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> From: Zhang Chen Message-ID: Date: Thu, 25 Aug 2016 11:44:19 +0800 MIME-Version: 1.0 In-Reply-To: <1471421428-26379-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V12 00/10] Introduce COLO-compare and filter-rewriter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu devel , Jason Wang Cc: Li Zhijian , Wen Congyang , zhanghailiang , "eddie . dong" , "Dr . David Alan Gilbert" Hi~~ Jason. If you have time, can you give me some feedback for this series? Thanks Zhang Chen On 08/17/2016 04:10 PM, 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. > > The full version in this github: > https://github.com/zhangckid/qemu/tree/colo-v2.7-proxy-mode-compare-and-rewriter-aug16 > > > v12: > - add qemu-char: Add qemu_chr_add_handlers_full() for GMaincontext > to this series as the first patch. > - update COLO net ascii figure. > - add chardev socket check. > - fix some typo. > - add some comments. > - rename net/colo-base.c to net/colo.c > - rename network/transport_layer to network/transport_header. > - move the job that clear coon_list when hashtable_size oversize > to connection_get. > - reuse connection_destroy() do colo_rm_connection(). > - fix pkt mem leak in colo_compare_connection(). > (result be released in g_queue_remove(), so it were not leak) > - rename thread_name "compare" to "colo-compare". > - change icmp compare to memcmp(). > > v11: > - Make patch 5 to a independent patch series. > [PATCH V3] qemu-char: Add qemu_chr_add_handlers_full() for GMaincontext > - 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 (10): > qemu-char: Add qemu_chr_add_handlers_full() for GMaincontext > colo-compare: introduce colo compare initialization > net/colo.c: add colo.c 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 | 59 ++++ > include/sysemu/char.h | 11 +- > net/Makefile.objs | 3 + > net/colo-compare.c | 784 ++++++++++++++++++++++++++++++++++++++++++++++++++ > net/colo.c | 204 +++++++++++++ > net/colo.h | 76 +++++ > net/filter-rewriter.c | 268 +++++++++++++++++ > qemu-char.c | 77 +++-- > qemu-options.hx | 52 ++++ > trace-events | 14 + > vl.c | 4 +- > 11 files changed, 1526 insertions(+), 26 deletions(-) > create mode 100644 include/qemu/jhash.h > create mode 100644 net/colo-compare.c > create mode 100644 net/colo.c > create mode 100644 net/colo.h > create mode 100644 net/filter-rewriter.c > -- Thanks zhangchen