diff options
| author | Yuchung Cheng <[email protected]> | 2019-01-16 15:05:30 -0800 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2019-01-17 15:12:26 -0800 |
| commit | 7ae189759cc48cf8b54beebff566e9fd2d4e7d7c (patch) | |
| tree | 352db05710fad943494d48107a6fb4d7555d0a70 /tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace | |
| parent | 7f12422c4873e9b274bc151ea59cb0cdf9415cf1 (diff) | |
tcp: always set retrans_stamp on recovery
Previously TCP socket's retrans_stamp is not set if the
retransmission has failed to send. As a result if a socket is
experiencing local issues to retransmit packets, determining when
to abort a socket is complicated w/o knowning the starting time of
the recovery since retrans_stamp may remain zero.
This complication causes sub-optimal behavior that TCP may use the
latest, instead of the first, retransmission time to compute the
elapsed time of a stalling connection due to local issues. Then TCP
may disrecard TCP retries settings and keep retrying until it finally
succeed: not a good idea when the local host is already strained.
The simple fix is to always timestamp the start of a recovery.
It's worth noting that retrans_stamp is also used to compare echo
timestamp values to detect spurious recovery. This patch does
not break that because retrans_stamp is still later than when the
original packet was sent.
Signed-off-by: Yuchung Cheng <[email protected]>
Signed-off-by: Eric Dumazet <[email protected]>
Reviewed-by: Neal Cardwell <[email protected]>
Reviewed-by: Soheil Hassas Yeganeh <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace')
0 files changed, 0 insertions, 0 deletions