TCP Segmentation Offloading (TSO)
[Posted September 4, 2002 by corbet]
| From: |
| "Feldman, Scott" <scott.feldman@intel.com> |
| To: |
| linux-kernel@vger.kernel.org, linux-net <linux-net@vger.kernel.org>,
"'Dave Hansen'" <haveblue@us.ibm.com>,
"'Manand@us.ibm.com'" <Manand@us.ibm.com> |
| Subject: |
| TCP Segmentation Offloading (TSO) |
| Date: |
| Mon, 2 Sep 2002 10:45:08 -0700 |
| Cc: |
| kuznet@ms2.inr.ac.ru, "'David S. Miller'" <davem@redhat.com>,
"Leech, Christopher" <christopher.leech@intel.com> |
TCP Segmentation Offloading (TSO) is enabled[1] in 2.5.33, along with an
enabled e1000 driver. Other capable devices can be enabled ala e1000; the
driver interface (NETIF_F_TSO) is very simple.
So, fire up you favorite networking performance tool and compare the
performance gains between 2.5.32 and 2.5.33 using e1000. I ran a quick test
on a dual P4 workstation system using the commercial tool Chariot:
Tx/Rx TCP file send long (bi-directional Rx/Tx)
w/o TSO: 1500Mbps, 82% CPU
w/ TSO: 1633Mbps, 75% CPU
Tx TCP file send long (Tx only)
w/o TSO: 940Mbps, 40% CPU
w/ TSO: 940Mbps, 19% CPU
A good bump in throughput for the bi-directional test. The Tx-only test was
already at wire speed, so the gains are pure CPU savings.
I'd like to see SPECWeb results w/ and w/o TSO, and any other relevant
testing. UDP framentation is not offloaded, so keep testing to TCP.
-scott
[1] Kudos to Alexey Kuznetsov for enabling the stack with TSO support, to
Chris Leech for providing the e1000 bits and a prototype stack, and to David
Miller for consultation.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
(
Log in to post comments)