On Thu, Sep 14, 2017 at 6:57 AM, Neal Cardwell <ncardw...@google.com> wrote: > On Wed, Sep 13, 2017 at 11:30 PM, Eric Dumazet <eric.duma...@gmail.com> wrote: >> >> From: Eric Dumazet <eduma...@googl.com> >> >> 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 <eduma...@googl.com> >> Reported-by: liujian <liujia...@huawei.com> >> --- >> net/ipv4/tcp_output.c | 19 ++++++++++++------- >> 1 file changed, 12 insertions(+), 7 deletions(-) > > Acked-by: Neal Cardwell <ncardw...@google.com> Acked-by: Yuchung Cheng <ych...@google.com>
nicely done! > > Thanks, Eric! > > neal