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 v6 0/2] Support Receive-Segment-Offload(RSC) for WHQL
Date: Mon, 30 May 2016 12:22:03 +0800 [thread overview]
Message-ID: <574BBFEB.4010707@redhat.com> (raw)
In-Reply-To: <1464453454-5703-1-git-send-email-wexu@redhat.com>
On 2016年05月29日 00:37, wexu@redhat.com wrote:
> From: Wei Xu <wexu@redhat.com>
>
> Changes in V6:
> - Sync upstream code
> - Split new fields in 'virtio_net_hdr' to a seperate patch
> - Remove feature bit code, replace it with a command line parameter 'guest_rsc'
> which is turned off by default.
>
> 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.
Change-log is very important for the ease and speed up reviewers. More
details are more than welcomed. But I see some changes were not
documented here. Please give a more complete one in next iteration.
>
> 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.
This is probably because you've increased the vnet header length.
>
> 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 (3):
> virtio-net rsc: support coalescing ipv4 tcp traffic
> virtio-net rsc: support coalescing ipv6 tcp traffic
> virtio-net rsc: add 2 new rsc information fields to 'virtio_net_hdr'
>
> hw/net/virtio-net.c | 642 +++++++++++++++++++++++++++-
> include/hw/virtio/virtio-net.h | 2 +
> include/hw/virtio/virtio.h | 75 ++++
> include/standard-headers/linux/virtio_net.h | 3 +
> 4 files changed, 721 insertions(+), 1 deletion(-)
>
next prev parent reply other threads:[~2016-05-30 4:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-28 16:37 [Qemu-devel] [ RFC Patch v6 0/2] Support Receive-Segment-Offload(RSC) for WHQL wexu
2016-05-28 16:37 ` [Qemu-devel] [ RFC Patch v6 1/3] virtio-net rsc: support coalescing ipv4 tcp traffic wexu
2016-05-30 4:20 ` Jason Wang
2016-06-02 16:16 ` Wei Xu
2016-05-28 16:37 ` [Qemu-devel] [ RFC Patch v6 2/3] virtio-net rsc: support coalescing ipv6 " wexu
2016-05-30 4:25 ` Jason Wang
2016-06-02 16:17 ` Wei Xu
2016-05-28 16:37 ` [Qemu-devel] [ RFC Patch v6 3/3] virtio-net rsc: add 2 new rsc information fields to 'virtio_net_hdr' wexu
2016-05-30 5:57 ` Jason Wang
2016-06-02 16:23 ` Wei Xu
2016-05-30 4:22 ` Jason Wang [this message]
2016-05-30 4:50 ` [Qemu-devel] [ RFC Patch v6 0/2] Support Receive-Segment-Offload(RSC) for WHQL 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=574BBFEB.4010707@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).