TSO / LSO
TSO / LSO
- Subject: TSO / LSO
- From: Andrew Gallatin <email@hidden>
- Date: Tue, 2 Jan 2007 13:39:22 -0500 (EST)
Josh Graessley writes:
>
> No. TCP offload support is something on the to-do list. It's just a
> question of resources and priorities. As much of a mess as that will
> create, there is potentially a huge upside. The question is, how many
> people will benefit from it whether there are more pressing issues.
Full TCP offload (like Micrsoft's Chimney) is a much bigger, and
nastier can of worms than TSO (aka LSO), and could certainly be
described as a "mess to create."
However, TSO is not full TCP offload, it is just another popular
stateless offload. In TSO, the TCP stack sends a "jumbo" (up to 64KB)
IP packet down to the driver and NIC, and the NIC itself carves that
packet up into many smaller frames. The advantage of TSO is that you
reduce by up to a factor of 40 or so the number of trips from
tcp_output() through the IP, ethernet, and IOKit layers to the driver.
Additionally, the NIC can typically make better use of the PCI bus by
issuing larger DMA reads. It would probably take a full time person a
week or less to port the infastructure from one of the BSDs, and I'm
pretty sure the Intel8245x ethernet chips on most new Apple hardware
support TSO, so you'd see an immediate benefit.
Here is a link to the FreeBSD commits, so as to give an idea of the
relatively small scope of the changes:
http://lists.freebsd.org/pipermail/cvs-src/2006-September/068483.html
http://lists.freebsd.org/pipermail/cvs-src/2006-September/068487.html
http://lists.freebsd.org/pipermail/cvs-src/2006-September/068524.html
(anybody doing a real port would have to look for updates, as of
course bugs were fixed in the next few days).
The payoff is pretty large. For the 10GbE NIC I do drivers for, we
went from sending at ~2Gb/s to ~8Gb/s when using a 1500 byte MTU on a
fairly wimpy 1.8GHz single CPU AMD64 when I implemented TSO support
in our FreeBSD driver.
Drew
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden