From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48872) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPxHX-0006bp-12 for qemu-devel@nongnu.org; Sun, 31 Jan 2016 14:03:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aPxHT-0001a7-MV for qemu-devel@nongnu.org; Sun, 31 Jan 2016 14:03:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41917) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aPxHT-0001Zm-Ed for qemu-devel@nongnu.org; Sun, 31 Jan 2016 14:03:27 -0500 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id E102B70D60 for ; Sun, 31 Jan 2016 19:03:26 +0000 (UTC) Date: Sun, 31 Jan 2016 21:03:22 +0200 From: "Michael S. Tsirkin" Message-ID: <20160131190322.GA28221@redhat.com> References: <1454264009-24094-1-git-send-email-wexu@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1454264009-24094-1-git-send-email-wexu@redhat.com> Subject: Re: [Qemu-devel] [RFC v2 0/10] Support Receive-Segment-Offload(RSC) for WHQL test of Window guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: wexu@redhat.com Cc: victork@redhat.com, jasowang@redhat.com, yvugenfi@redhat.com, qemu-devel@nongnu.org, marcel@redhat.com, dfleytma@redhat.com On Mon, Feb 01, 2016 at 02:13:19AM +0800, wexu@redhat.com wrote: > From: Wei Xu > > Patch v2 add detailed commit log. > > This patch is to support WHQL test for Windows guest, while this feature also > benifits other guest works as a kernel 'gro' like feature with userspace implementation. > Feature information: > http://msdn.microsoft.com/en-us/library/windows/hardware/jj853324 > > Both IPv4 and IPv6 are supported, though performance with userspace virtio > is slow than vhost-net, there is about 30-40 percent performance > improvement to userspace virtio, this is done by turning this feature on > and disable 'tso' on corresponding tap interface. > > Test steps: > Although this feature is mainly used for window guest, i used linux guest to help test > the feature, to make things simple, i used 3 steps to test the patch as i moved on. > 1. With a tcp socket client/server pair runnig on 2 linux guest, thus i can control > the traffic and debugging the code as i want. > 2. Netperf on linux guest test the throughput. > 3. WHQL test with 2 Windows guest. > > Current status: > IPv4 pass all the above tests. > IPv6 just passed test step 1 and 2 as described ahead, the virtio nic cannot receive > any packet in WHQL test, debugging on the host side shows all the packets have been > pushed to th vring, by replacing it with a linux guest, i add 10 extra packets before > sending out the real packet, tcpdump running on guest only capture 6 packets, don't > find out the root cause yet, will continue working on this. > > Note: > A 'MessageDevice' nic chose as 'Realtek' will panic the system sometimes during setup, > this can be figured out by replacing it with an 'e1000' nic. Either memory corruption or unrelated bug. try with valgrind? > Pending issues & Todo list: > 1. Dup ack count not added in the virtio_net_hdr, but WHQL test case passes, > looks like a bug in test case. Maybe that's ok - as long as packets are not forwarded. > 2. Missing a Feature Bit Do we need a new bit? Maybe for ack coalescing only ... > 3. Missing a few tcp/ip handling > ECN change. > TCP window scale. > > Wei Xu (10): > virtio-net rsc: Data structure, 'Segment', 'Chain' and 'Status' > virtio-net rsc: Initilize & Cleanup > virtio-net rsc: Chain Lookup, Packet Caching and Framework of IPv4 > virtio-net rsc: Detailed IPv4 and General TCP data coalescing > virtio-net rsc: Create timer to drain the packets from the cache pool > virtio-net rsc: IPv4 checksum > virtio-net rsc: Checking TCP flag and drain specific connection > packets > virtio-net rsc: Sanity check & More bypass cases check > virtio-net rsc: Add IPv6 support > virtio-net rsc: Add Receive Segment Coalesce statistics > > hw/net/virtio-net.c | 626 ++++++++++++++++++++++++++++++++++++++++- > include/hw/virtio/virtio-net.h | 1 + > include/hw/virtio/virtio.h | 65 +++++ > 3 files changed, 691 insertions(+), 1 deletion(-) > > -- > 2.4.0