From: Jason Wang <jasowang@redhat.com>
To: wexu@redhat.com, qemu-devel@nongnu.org
Cc: victork@redhat.com, mst@redhat.com, yvugenfi@redhat.com,
marcel@redhat.com, dfleytma@redhat.com
Subject: Re: [Qemu-devel] [ RFC Patch v5 0/2] Support Receive-Segment-Offload(RSC) for WHQL
Date: Tue, 24 May 2016 16:03:04 +0800 [thread overview]
Message-ID: <57440AB8.604@redhat.com> (raw)
In-Reply-To: <1464034485-30543-1-git-send-email-wexu@redhat.com>
On 2016年05月24日 04:14, wexu@redhat.com wrote:
> From: Wei Xu <wexu@redhat.com>
>
> 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?
>
> 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(-)
>
next prev parent reply other threads:[~2016-05-24 8:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-23 20:14 [Qemu-devel] [ RFC Patch v5 0/2] Support Receive-Segment-Offload(RSC) for WHQL wexu
2016-05-23 20:14 ` [Qemu-devel] [ RFC Patch v5 1/2] virtio-net rsc: support coalescing ipv4 tcp traffic wexu
2016-05-24 8:33 ` [Qemu-devel] [ RFC Patch v5 1/2] virtio-net rsc: support coalescing ipv4 tcp traffic/ Michael S. Tsirkin
2016-05-23 20:14 ` [Qemu-devel] [ RFC Patch v5 2/2] virtio-net rsc: support coalescing ipv6 tcp traffic wexu
2016-05-24 8:03 ` Jason Wang [this message]
2016-05-24 8:26 ` [Qemu-devel] [ RFC Patch v5 0/2] Support Receive-Segment-Offload(RSC) for WHQL Michael S. Tsirkin
2016-05-24 9:49 ` Wei Xu
2016-05-25 8:08 ` Jason Wang
2016-05-25 8:26 ` Michael S. Tsirkin
2016-05-24 9:49 ` Wei Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57440AB8.604@redhat.com \
--to=jasowang@redhat.com \
--cc=dfleytma@redhat.com \
--cc=marcel@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=victork@redhat.com \
--cc=wexu@redhat.com \
--cc=yvugenfi@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).