From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59718) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQ5OR-00060O-9c for qemu-devel@nongnu.org; Sun, 31 Jan 2016 22:43:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aQ5OM-0005eE-5Y for qemu-devel@nongnu.org; Sun, 31 Jan 2016 22:43:11 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40055) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aQ5OL-0005e2-Td for qemu-devel@nongnu.org; Sun, 31 Jan 2016 22:43:06 -0500 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 88DC5804E9 for ; Mon, 1 Feb 2016 03:43:05 +0000 (UTC) Message-ID: <56AED43A.20405@redhat.com> Date: Mon, 01 Feb 2016 11:42:50 +0800 From: Wei Xu MIME-Version: 1.0 References: <1454264009-24094-1-git-send-email-wexu@redhat.com> <56AECF9A.7090100@redhat.com> In-Reply-To: <56AECF9A.7090100@redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit 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: Jason Wang , qemu-devel@nongnu.org Cc: marcel@redhat.com, victork@redhat.com, dfleytma@redhat.com, mst@redhat.com, yvugenfi@redhat.com On 02/01/2016 11:23 AM, Jason Wang wrote: > > On 02/01/2016 02:13 AM, 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. > Maybe you can share us with the numbers? Sure, will paste them in. > >> 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. > Maybe you can try dropmonitor [1] in both host and guest to find the > reason of packet dropping. > > [1] ./perf script net_dropmonitor OK, thanks Jason. Wei >> 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. >> >> 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. >> 2. Missing a Feature Bit >> 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(-) >> >