From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57935) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bclwo-0007uX-Lr for qemu-devel@nongnu.org; Thu, 25 Aug 2016 00:07:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bclwj-0000fl-9L for qemu-devel@nongnu.org; Thu, 25 Aug 2016 00:07:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33134) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bclwj-0000fV-1Y for qemu-devel@nongnu.org; Thu, 25 Aug 2016 00:07:17 -0400 References: <1471421428-26379-1-git-send-email-zhangchen.fnst@cn.fujitsu.com> From: Jason Wang Message-ID: <25c4c881-e852-b88a-9e5a-98e4c2827ab6@redhat.com> Date: Thu, 25 Aug 2016 12:07:08 +0800 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable 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: Zhang Chen , qemu devel Cc: Li Zhijian , Wen Congyang , zhanghailiang , "eddie . dong" , "Dr . David Alan Gilbert" On 2016=E5=B9=B408=E6=9C=8825=E6=97=A5 11:44, Zhang Chen wrote: > Hi~~ Jason. > > If you have time, can you give me some feedback for this series? > > > Thanks > > Zhang Chen Yes, a little busy this week, will do it next week. Thanks > > > 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-an= d-rewriter-aug16=20 >> >> >> >> 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=20 >> 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=20 >> ++++++++++++++++++++++++++++++++++++++++++++++++++ >> 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 >> >