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

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


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

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



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.