[e2e] Are Packet Trains / Packet Bursts a Problem in TCP?
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
> 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
> 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
there is no rest for the wicked, yet the virtuous have no pillows
More information about the end2end-interest