diff options
author | 2014-02-28 16:42:26 -0800 | |
---|---|---|
committer | 2014-03-03 15:33:02 -0500 | |
commit | c84a57113f59486e6688be1cd443b96e3118efa0 (patch) | |
tree | 5177aed13e8ff6c94ceed13239d824a92e672f71 /tools/perf/scripts/python | |
parent | hsr: off by one sanity check in hsr_register_frame_in() (diff) | |
download | linux-dev-c84a57113f59486e6688be1cd443b96e3118efa0.tar.xz linux-dev-c84a57113f59486e6688be1cd443b96e3118efa0.zip |
tcp: fix bogus RTT on special retransmission
RTT may be bogus with tall loss probe (TLP) when a packet
is retransmitted and latter (s)acked without TCPCB_SACKED_RETRANS flag.
For example, TLP calls __tcp_retransmit_skb() instead of
tcp_retransmit_skb(). The skb timestamps are updated but the sacked
flag is not marked with TCPCB_SACKED_RETRANS. As a result we'll
get bogus RTT in tcp_clean_rtx_queue() or in tcp_sacktag_one() on
spurious retransmission.
The fix is to apply the sticky flag TCP_EVER_RETRANS to enforce Karn's
check on RTT sampling. However this will disable F-RTO if timeout occurs
after TLP, by resetting undo_marker in tcp_enter_loss(). We relax this
check to only if any pending retransmists are still in-flight.
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Nandita Dukkipati <nanditad@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions