On Thu, Sep 14, 2017 at 12:32 PM, Yuchung Cheng <[email protected]> wrote: > On Thu, Sep 14, 2017 at 6:57 AM, Neal Cardwell <[email protected]> wrote: >> On Wed, Sep 13, 2017 at 11:30 PM, Eric Dumazet <[email protected]> >> wrote: >>> >>> From: Eric Dumazet <[email protected]> >>> >>> 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. >> ... >>> >>> Signed-off-by: Eric Dumazet <[email protected]> >>> Reported-by: liujian <[email protected]> >>> --- >>> net/ipv4/tcp_output.c | 19 ++++++++++++------- >>> 1 file changed, 12 insertions(+), 7 deletions(-) >> >> Acked-by: Neal Cardwell <[email protected]> > Acked-by: Yuchung Cheng <[email protected]>
Acked-by: Soheil Hassas Yeganeh <[email protected]> Very nice! Thank you, Eric!
