qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Wei Xu <wexu@redhat.com>
To: Jason Wang <jasowang@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:50:45 +0800	[thread overview]
Message-ID: <574BC6A5.8010408@redhat.com> (raw)
In-Reply-To: <574BBFEB.4010707@redhat.com>


On 2016年05月30日 12:22, Jason Wang wrote:
>
>
> 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.
OK.
>
>>
>> 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(-)
>>
>

      reply	other threads:[~2016-05-30  4:51 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 ` [Qemu-devel] [ RFC Patch v6 0/2] Support Receive-Segment-Offload(RSC) for WHQL Jason Wang
2016-05-30  4:50   ` Wei Xu [this message]

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=574BC6A5.8010408@redhat.com \
    --to=wexu@redhat.com \
    --cc=dfleytma@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=victork@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).