netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rick Jones <rick.jones2@hp.com>
To: netdev@oss.sgi.com
Subject: Re: TCP-Protection is really a pain...
Date: Thu, 03 Feb 2005 12:47:14 -0800	[thread overview]
Message-ID: <42028DD2.2010809@hp.com> (raw)
In-Reply-To: <42028747.6060602@rapidforum.com>

Christian Schmid wrote:
> Offload parameters for eth0:
> rx-checksumming: on
> tx-checksumming: on
> scatter-gather: on
> tcp segmentation offload: on
> 
> What exactly is tcp segmentation offload? 

TCP Segmentation Offload, aka TSO or in other contexts "large send" can be 
thought of as a "poor man's" Jumbo Frame.  The NIC advertises to the host that 
it can resegment larger TCP segments into sizes apropriate for the network.

This allows the host CPU stack to make fewer trips down the protocol stack to 
transfer a given quantity of data, thus reducing the service demand (quantity of 
CPU consumed per quantity of work).  The reduction in service demand can result 
in an increase in throughput if the transfer was previously CPU-bound.

It has the advantage over JumboFrame in that it does not require support in the 
rest of the infrastructure (switches, routers, receivers etc). I call it "poor 
man's" JumboFrame because it does not reduce the overheads on the receiver - the 
receiver still sees just as many "normally" sized segments as before, and sends 
just as many ACKs per KB transferred as before.

If a NIC is implemented with a microprocessor (bletch - personal opinion) the 
additional demands of TSO resegmenation may actually reduce throughput even as 
it greatly reduces server CPU utilization.  That was particularly evident in old 
Tigon2 NICs.  I am not sure if that is noticable in current generation BMC570X's 
or not - most of the systems I have at my disposal have BCM5701's in them and 
I'm not sure the drivers allow TSO to be enabled on that rev?  I've not seen a 
drop in maximum throughput on the "e1000" NICs I've played with, which have been 
some dual-port cards HP sells. YMMV.

 > Where can I read more about it?

In addition to whatever there may be in Linux documentation...
TSO or large send is also a long-standing feature of TCP  in AIX and (dare I say 
it here?-) Windows.  As such IBM and Microsoft may have writeups - I'm pretty 
sure that Microsoft had a write-up about it on their website - talking about the 
NDIS interface at least.  It is also a fairly recent addition to HP-UX, but I am 
not sure if there are any writeups about it on HP's websites yet.

>Should I disable it or is this not a good idea?

That depends.  If you are concerned about proper slow-start behaviour at the 
beginning of a connection you should disable it until you are on a later rev.

I've always wondered if it wouldn't be an interesting experiment with a "real" 
server to see if dishonouring slow-start at connection establishment (and there 
only, keep it after RTO) made all that much a difference in the host's 
retransmission rates...

rick jones

  reply	other threads:[~2005-02-03 20:47 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-03  4:07 TCP-Protection is really a pain Christian Schmid
2005-02-03  4:54 ` Stephen Hemminger
2005-02-03  5:21   ` Christian Schmid
2005-02-03  6:50     ` Jeff Garzik
2005-02-03 17:04       ` Christian Schmid
2005-02-03 19:33     ` Stephen Hemminger
2005-02-03 19:58       ` Christian Schmid
2005-02-03 20:15         ` Stephen Hemminger
2005-02-03 20:19           ` Christian Schmid
2005-02-03 20:47             ` Rick Jones [this message]
2005-02-03 22:13             ` Jeff Garzik
2005-02-03 22:29               ` Christian Schmid

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42028DD2.2010809@hp.com \
    --to=rick.jones2@hp.com \
    --cc=netdev@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).