Page MenuHomeFreeBSD

tcp: add counter to track when SACK loss recovery uses TSO
ClosedPublic

Authored by rscheff on Thu, May 2, 7:58 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, May 10, 7:48 PM
Unknown Object (File)
Wed, May 8, 5:44 PM
Unknown Object (File)
Sat, May 4, 5:27 PM
Unknown Object (File)
Sat, May 4, 3:09 AM
Unknown Object (File)
Fri, May 3, 7:50 AM
Subscribers

Details

Summary

In preparation when transmission (length) selection will
be handled properly during SACK loss recovery with D43355 and
D43470, add a counter to track how frequently SACK has
transmitted more than one MSS using TSO.

This can happen under a few conceivable circumstances:

  • PRR allows growth of the cwnd while the recovery episode

is not completed, using the Slow-Start Reduction Bound (SSRB)
mechanism.

  • ACK thinning (GRO / LRO) or ACK losses (with SACK information)

indicate that more than MSS bytes have been received or got
lost.

While SACK may legitimately want to transmit more than one MSS
segment under these circumstance, the use of TSO will change the
transmission timing while also reducing the CPU burden doing so.

This could conceivably lead to self-infliced losses at the
congested queue. The counter is provided to correlate any
such occurances, and allow A/B testing with and without TSO
enabled during SACK loss recovery.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable