Re: [PATCH net] tcp: update skb->skb_mstamp more carefully
From: Soheil Hassas Yeganeh <hidden>
Date: 2017-09-14 16:42:27
On Thu, Sep 14, 2017 at 12:32 PM, Yuchung Cheng [off-list ref] wrote:
On Thu, Sep 14, 2017 at 6:57 AM, Neal Cardwell [off-list ref] wrote:quoted
On Wed, Sep 13, 2017 at 11:30 PM, Eric Dumazet [off-list ref] wrote:quoted
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....quoted
Signed-off-by: Eric Dumazet <redacted> Reported-by: liujian <redacted> --- net/ipv4/tcp_output.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)Acked-by: Neal Cardwell <ncardwell@google.com>Acked-by: Yuchung Cheng <redacted>
Acked-by: Soheil Hassas Yeganeh <redacted> Very nice! Thank you, Eric!