qemu-devel
[Top][All Lists]
Advanced

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

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


From: Wei Xu
Subject: Re: [Qemu-devel] [ RFC Patch v7 0/2] Support Receive-Segment-Offload(RSC) for WHQL
Date: Fri, 25 Nov 2016 09:37:18 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 2016年11月24日 12:28, Jason Wang wrote:


On 2016年11月01日 01:41, address@hidden wrote:
From: Wei Xu <address@hidden>

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

v6->v7
- Change the drain timer from 'virtual' to 'host' since it invisible
   to guest.
- Move the buffer list empty check to virtio_net_rsc_do_coalesc().
- The header comparision is a bit odd for ipv4 in this patch, it
   should be simpler with equal check, but this is also a helper for ipv6
   in next patch, and ipv6 used a different size address fields, so i
used
   an 'address + size' byte comparision for address, and change comparing
   the tcp port with 'int' equal check.
- Add count for packets whose size less than a normal tcp packet in
   sanity check.
- Move constant value comparison to the right side of the equal symbol.
- Use host header length in stead of guest header length to verify a
   packet in virtio_net_rsc_receive(), in case of the different header
   length for guest and host.
- Check whether the packet size is enough to hold a legal packet before
   extract ip unit.
- Bypass ip/tcp ECN packets.
- Expand the feature bit definition from 32 to 64 bits.

Other notes:
- About tcp windows scale, we don't have connection tracking about all
   tcp connections, so we don't know what the exact window size is using,
   thus this feature may get negative influence to it, have to turn this
   feature off for such a user case currently.
- There are 2 new fields in the virtio net header, it's not in either
   kernel tree or maintainer's tree right now, I just put it directly
here.
- The statistics is kept in this version since it's helpful for
   troubleshooting.

Please do not adding more and more stuffs in the same patch. Instead,
you can add them by using new patches on top. This can greatly simplify
the reviewers' work. E.g in this version, it looks like the parts of
virtio extension brings lots of troubles. So I suggest to split the
patch into several parts:

- helpers (e.g macro for ECN bit)
- core coalescing logic which has been reviewed for several version,
please do not add more functions to this part. This part could be even
disabled in the code until virtio part is introduced.
- virtio extension (e.g virtio-net header extension and feature bits)
- stats

OK, get split it in next version.


Thanks



reply via email to

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