Thread (20 messages) flat view 20 messages, 6 authors, 2017-09-16

Re: [PATCH net] tcp: update skb->skb_mstamp more carefully

From: David Miller <davem@davemloft.net>
Date: 2017-09-15 21:37:07

From: Eric Dumazet <redacted>
Date: Wed, 13 Sep 2017 20:30:39 -0700
From: Eric Dumazet <redacted>

liujian reported a problem in TCP_USER_TIMEOUT processing with a patch
in tcp_probe_timer() :
      https://www.spinics.net/lists/netdev/msg454496.html

After investigations, the root cause of the problem is that we update
skb->skb_mstamp of skbs in write queue, even if the attempt to send a
clone or copy of it failed. One reason being a routing problem.

This patch prevents this, solving liujian issue.

It also removes a potential RTT miscalculation, since
__tcp_retransmit_skb() is not OR-ing TCP_SKB_CB(skb)->sacked with
TCPCB_EVER_RETRANS if a failure happens, but skb->skb_mstamp has
been changed.

A future ACK would then lead to a very small RTT sample and min_rtt
would then be lowered to this too small value.

Tested:
...
Signed-off-by: Eric Dumazet <redacted>
Reported-by: liujian <redacted>
Applied and queued up for -stable, thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help