WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [0/5] [NET]: Add TSO support

To: Xen Development Mailing List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [0/5] [NET]: Add TSO support
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 27 Jun 2006 22:02:40 +1000
Delivery-date: Tue, 27 Jun 2006 05:03:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
Hi:

The following patches add TCP Segmentation Offload (TSO) support in the
domU => dom0 direction.  If everyone's happy with this approach then it's
trivial to do the same thing for the opposite direction.

TSO support requires the Geneic Segmentation Offload (GSO) infrastructure
that was recently added to Linux (merged after the release of 2.6.17 so
will be part of 2.6.18).  This is needed when a TSO packet is sent to a
device without TSO support.

I've included a backport of GSO for 2.6.16.13 here.

Testing is should be easy as TSO is turned on by default.  You can verify
that it's working by attaching tcpdump to any of the interfaces involved
ina domU => dom0 transfer.  You should see packets whose payload is an
integral multiple of MSS.

Comparison with base line and jumbo MTU:

baseline:       1228.08Mb/s
mtu=16436:      3097.49Mb/s
TSO:            3208.41Mb/s
mtu=60040:      3869.36Mb/s

lo(16436):      5543.91Mb/s
lo(60040):      8544.08Mb/s

There is still a problem with TSO ack timing that causes it to generate
smaller than optimal packets.  This can be seen with increasing the RCV
buffer size on the transfer which actually causes TSO performance to
dip by 30% to about 2000Mb/s.  The reason is that we get a lot more
smaller packets (2*MSS or 3*MSS) than really big ones (~64K).  I'm
investigating this issue.

However, even with this nit, it's still a great improvement over the base
line and does not have the interoperability issue that comes with raising
MTU.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel