[e2e] Are Packet Trains / Packet Bursts a Problem in TCP?

rick jones perfgeek at mac.com
Fri Sep 29 08:49:34 PDT 2006

> It's obvious that doing hardware TSO for say an 8 K data chunk, i.e. 5
> segments, provides great savings in terms of CPU cycles and I/O bus
> utilization spent on transmitting TCP streams.  But what is the 
> performance
> gain for going up from 8 K / 5 segment TSO to 64 K / 44 segment bursts,
> knowing that bursts that large clearly coudl be a double-edged sword?

One of those wonderful "it depends" sorts of things.  If you have 
zero-copy, the diminishing returns are father out than if there is 
still a non-trivial per-byte cost (eg from copying from user to 
kernel).  CKO and zero-copy address per-byte costs, TSO the per-packet.

And as the TSO offload is increased, ACK processing becomes a greater 
and greater percentage of the CPU overhead, which gives rise to 
incentives for ACK avoidance heuristics :)

> In other words, how large the TSO bursts could be considered tolerable 
> and
> justified - roughly where should we draw the line?

There is no line - at least not in the sense that we can say 
categorically "N burst good, M burst bad" because it will vary with the 
conditions. I'm content to let the admin have control over the maximum 
size of the TSO offload, the routers drop packets and/or set ECN, and a 
congestion control algorithm to keep things from melting and leave it 
at that.

rick jones
there is no rest for the wicked, yet the virtuous have no pillows

More information about the end2end-interest mailing list