From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55460) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agZk3-0002n7-6d for qemu-devel@nongnu.org; Thu, 17 Mar 2016 11:21:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1agZjx-0007jJ-Cq for qemu-devel@nongnu.org; Thu, 17 Mar 2016 11:21:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38752) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1agZjx-0007ho-4e for qemu-devel@nongnu.org; Thu, 17 Mar 2016 11:21:33 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 5E52DC0467F6 for ; Thu, 17 Mar 2016 15:21:32 +0000 (UTC) From: Wei Xu References: <1458033424-25414-1-git-send-email-wexu@redhat.com> <56EA52F0.3020703@redhat.com> Message-ID: <56EACB78.7030809@redhat.com> Date: Thu, 17 Mar 2016 23:21:28 +0800 MIME-Version: 1.0 In-Reply-To: <56EA52F0.3020703@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [ Patch 0/2] 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, yvugenfi@redhat.com, mst@redhat.com On 2016=E5=B9=B403=E6=9C=8817=E6=97=A5 14:47, Jason Wang wrote: > On 03/15/2016 05:17 PM,wexu@redhat.com wrote: >> From: Wei Xu >> >> Fixed issues based on rfc patch v2: >> 1. Removed big param list, replace it with 'NetRscUnit' >> 2. Different virtio header size >> 3. Modify callback function to direct call. >> 4. Needn't check the failure of g_malloc() >> 5. Other code format adjustment, macro naming, etc >> >> This patch is to support WHQL test for Windows guest, while this featu= re also >> benifits other guest works as a kernel 'gro' like feature with userspa= ce implementation. >> Feature information: >> http://msdn.microsoft.com/en-us/library/windows/hardware/jj853324 >> >> Both IPv4 and IPv6 are supported, though performance with userspace vi= rtio >> is slow than vhost-net, there is about 1x to 3x performance improvemen= t to >> userspace virtio, this is done by turning this feature on and disable >> 'tso/gso/gro' on corresponding tap interface and guest interface, whil= e get >> less improment with all these feature on. >> >> Test steps: >> Although this feature is mainly used for window guest, i used linux gu= est to help test >> the feature, to make things simple, i used 3 steps to test the patch a= s i moved on. >> 1. With a tcp socket client/server pair running 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 guests. >> >> 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, looks like the test traffic is not se= nt from >> on the support machine, test device can access both host and another l= inux >> guest, tried a lot of ways to work it out but failed, maybe debug from= windows >> guest driver side can help figuring it out. > I think you need figure out where was the packet dropped first. If the > packet was not dropped by windows guest, you may want to try dropmonito= r. Yes, there is something wrong with my previous description, i add some=20 debug code and did new test, the packets are received by=20 virtio_net_receive() and are finished putting to the vring with no error=20 and sent to win guest already, but wireshark on win guest doesn't get=20 it, because the test case did some hacking on the filter, it installed=20 another lightweight filter, i'm not sure how these packets go in the=20 guest, maybe they are received but dropped by driver or stack, etc. I tried 'dropmonitor', it's very interesting but it helps very limitedly=20 for windows guest, i can only use it with qemu on the host. >> Note: >> A 'MessageDevice' nic chose as 'Realtek' will panic the system sometim= es during setup, >> this can be figured out by replacing it with an 'e1000' nic. >> >> Todo: >> More sanity check and tcp 'ecn' and 'window' scale test. >> >> Wei Xu (2): >> virtio-net rsc: support coalescing ipv4 tcp traffic >> virtio-net rsc: support coalescing ipv6 tcp traffic >> >> hw/net/virtio-net.c | 602 +++++++++++++++++++++++++++++++= +++++++++- >> include/hw/virtio/virtio-net.h | 1 + >> include/hw/virtio/virtio.h | 75 +++++ >> 3 files changed, 677 insertions(+), 1 deletion(-) >>