qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [ RFC Patch v4 0/3] Support Receive-Segment-Offload(RSC


From: Jason Wang
Subject: Re: [Qemu-devel] [ RFC Patch v4 0/3] Support Receive-Segment-Offload(RSC) for WHQL
Date: Tue, 5 Apr 2016 10:52:17 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0


On 04/04/2016 03:25 AM, address@hidden wrote:
> From: Wei Xu <address@hidden>
>
> Changes in V4:
> - Add new host feature bit
> - Replace using fixed header lenght with dynamic header lenght in VirtIONet 
> - Change ip/ip6 header union in NetRscUnit to void* pointer
> - Add macro prefix, adjust code indent, etc.

Looks good, just few comments.

It's also better to have a unit test for this.

>
> Changes in V3:
> - Removed big param list, replace it with 'NetRscUnit' 
> - Different virtio header size
> - Modify callback function to direct call.
> - Needn't check the failure of g_malloc()
> - Other code format adjustment, macro naming, etc 
>
> Changes in 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 1.5x to 2x performance improvement to
> userspace virtio, this is done by turning this feature on and disable
> 'tso/gso/gro' on corresponding tap interface and guest interface, while get
> less improment with all these feature on.
>
> Linux guest performance data(Netperf):
> MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 
> 192.168.2.101 () port 0 AF_INET : nodelay
> Size   Size    Size     Time     Throughput  
> bytes  bytes   bytes    secs.    10^6bits/sec  
>
>  87380  16384     64    6.00     1221.20   
>  87380  16384     64    6.00     1260.30   
>
>  87380  16384    128    6.00     1978.51   
>  87380  16384    128    6.00     2286.05   
>
>  87380  16384    256    6.00     2677.94   
>  87380  16384    256    6.00     4615.42   
>
>  87380  16384    512    6.00     2956.54   
>  87380  16384    512    6.00     5356.39   
>
>  87380  16384   1024    6.00     2798.17   
>  87380  16384   1024    6.00     4943.30   
>
>  87380  16384   2048    6.00     2681.09   
>  87380  16384   2048    6.00     4835.81   
>
>  87380  16384   4096    6.00     3390.14   
>  87380  16384   4096    6.00     5391.54   
>
>  87380  16384   8092    6.00     3008.27   
>  87380  16384   8092    6.00     5381.68   
>
>  87380  16384  10240    6.00     2999.89   
>  87380  16384  10240    6.00     5393.11 
>
> 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 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, trying with a win debug binary
>
> 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.
>
> Todo:
> More sanity check and tcp 'ecn' and 'window' scale test.
>
> Wei Xu (3):
>   virtio-net rsc: add a new host offload(rsc) feature bit
>   virtio-net rsc: support coalescing ipv4 tcp traffic
>   virtio-net rsc: support coalescing ipv6 tcp traffic
>
>  hw/net/virtio-net.c                         | 642 
> +++++++++++++++++++++++++++-
>  include/hw/virtio/virtio-net.h              |   1 +
>  include/hw/virtio/virtio.h                  |  72 ++++
>  include/standard-headers/linux/virtio_net.h |   1 +
>  4 files changed, 714 insertions(+), 2 deletions(-)
>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]