qemu-devel
[Top][All Lists]
Advanced

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

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


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [ RFC Patch v5 0/2] Support Receive-Segment-Offload(RSC) for WHQL
Date: Tue, 24 May 2016 11:26:10 +0300

On Tue, May 24, 2016 at 04:03:04PM +0800, Jason Wang wrote:
> 
> 
> On 2016年05月24日 04:14, address@hidden wrote:
> >From: Wei Xu <address@hidden>
> >
> >Changes in V5:
> >- Passed all IPv4/6 test cases
> >- Add new fields in 'virtio_net_hdr'
> >- Set 'gso_type' & 'coalesced packets' in new field.
> >- Bypass all 'tcp option' packet
> >- Bypass all 'pure ack' packet
> >- Bypass all 'duplicate ack' packet
> >- Change 'guest_rsc' feature bit to 'false' by default
> >- Feedbacks from v4, typo, etc.
> 
> Patch does not apply on master ...
> 
> >
> >Note:
> >There is still a few pending issues about the feature bit, and need to be
> >discussed with windows driver maintainer, so linux guests with this patch
> >won't work at current, haven't figure it out yet, but i'm guessing it's
> >caused by the 'gso_type' is set to 'VIRTIO_NET_HDR_GSO_TCPV4/6',
> >will fix it after get the final solution, the below test steps and
> >performance data is based on v4.
> 
> Can we split the patches into smaller ones to make review or merging easier?
> E.g can we send the patches without any feature negotiation and vnet header
> extension?
> 
> We can focus on the coalescing (maybe ipv4) without any guest involvement in
> this series. In this way, the issues were limited and can be converged soon.
> After this has been merged, we can add patches that co-operate with guests
> on top (since it needs agreement on virtio specs). Does this sounds a good
> plan?

True but disabling everything when feature is not negotiated
reduces the risk somewhat.

> >
> >Another suggestion from Jason is to adjust part of the code to make it
> >more readable, since there maybe still few change about the flowchart
> >in the future, such as timestamp, duplicate ack, so i'd like to delay it
> >temporarily.
> >
> >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.
> >
> >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.
> >
> >Wei Xu (2):
> >   virtio-net rsc: support coalescing ipv4 tcp traffic
> >   virtio-net rsc: support coalescing ipv6 tcp traffic
> >
> >  hw/net/virtio-net.c                         | 623 
> > +++++++++++++++++++++++++++-
> >  include/hw/virtio/virtio-net.h              |   2 +
> >  include/hw/virtio/virtio.h                  |  75 ++++
> >  include/standard-headers/linux/virtio_net.h |   2 +
> >  4 files changed, 699 insertions(+), 3 deletions(-)
> >



reply via email to

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