[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1505517411.29839.1.camel@edumazet-glaptop3.roam.corp.google.com>
Date: Fri, 15 Sep 2017 16:16:51 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: David Miller <davem@...emloft.net>
Cc: liujian56@...wei.com, edumazet@...gle.com, ycheng@...gle.com,
hkchu@...gle.com, netdev@...r.kernel.org, weiyongjun1@...wei.com,
wangkefeng.wang@...wei.com
Subject: Re: [PATCH net] tcp: update skb->skb_mstamp more carefully
On Fri, 2017-09-15 at 14:37 -0700, David Miller wrote:
> From: Eric Dumazet <eric.dumazet@...il.com>
> Date: Wed, 13 Sep 2017 20:30:39 -0700
>
> > From: Eric Dumazet <edumazet@...gl.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.
> >
> > Tested:
> ...
> > Signed-off-by: Eric Dumazet <edumazet@...gl.com>
> > Reported-by: liujian <liujian56@...wei.com>
>
> Applied and queued up for -stable, thanks.
Thanks David.
It seems I forgot to move the call to tcp_rate_skb_sent(sk, skb),
as this function depended on skb->skb_mstamp being up to date.
I will send a fix, sorry for not catching this earlier.
Powered by blists - more mailing lists