qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC v2 0/10] Support Receive-Segment-Offload(RSC) for


From: Wei Xu
Subject: Re: [Qemu-devel] [RFC v2 0/10] Support Receive-Segment-Offload(RSC) for WHQL test of Window guest
Date: Mon, 01 Feb 2016 11:42:50 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0

On 02/01/2016 11:23 AM, Jason Wang wrote:

On 02/01/2016 02:13 AM, address@hidden wrote:
From: Wei Xu <address@hidden>

Patch 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 30-40 percent performance
improvement to userspace virtio, this is done by turning this feature on
and disable 'tso' on corresponding tap interface.
Maybe you can share us with the numbers?
Sure, will paste them in.

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 runnig 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 guest.

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, debugging on the host side shows all the packets have 
been
pushed to th vring, by replacing it with a linux guest, i add 10 extra packets 
before
sending out the real packet, tcpdump running on guest only capture 6 packets, 
don't
find out the root cause yet, will continue working on this.
Maybe you can try dropmonitor [1] in both host and guest to find the
reason of packet dropping.

[1] ./perf script net_dropmonitor
OK, thanks Jason.

Wei
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.

Pending issues & Todo list:
1. Dup ack count not added in the virtio_net_hdr, but WHQL test case passes,
looks like a bug in test case.
2. Missing a Feature Bit
3. Missing a few tcp/ip handling
     ECN change.
     TCP window scale.

Wei Xu (10):
   virtio-net rsc: Data structure, 'Segment', 'Chain' and 'Status'
   virtio-net rsc: Initilize & Cleanup
   virtio-net rsc: Chain Lookup, Packet Caching and Framework of IPv4
   virtio-net rsc: Detailed IPv4 and General TCP data coalescing
   virtio-net rsc: Create timer to drain the packets from the cache pool
   virtio-net rsc: IPv4 checksum
   virtio-net rsc: Checking TCP flag and drain specific connection
     packets
   virtio-net rsc: Sanity check & More bypass cases check
   virtio-net rsc: Add IPv6 support
   virtio-net rsc: Add Receive Segment Coalesce statistics

  hw/net/virtio-net.c            | 626 ++++++++++++++++++++++++++++++++++++++++-
  include/hw/virtio/virtio-net.h |   1 +
  include/hw/virtio/virtio.h     |  65 +++++
  3 files changed, 691 insertions(+), 1 deletion(-)






reply via email to

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