[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK6E8=dzYTaXnrXGeANX+wOtE+jfzX7M1ZokToe=ukm+tRK+Jw@mail.gmail.com>
Date: Thu, 14 Sep 2017 09:32:29 -0700
From: Yuchung Cheng <ycheng@...gle.com>
To: Neal Cardwell <ncardwell@...gle.com>
Cc: Eric Dumazet <eric.dumazet@...il.com>,
liujian <liujian56@...wei.com>,
David Miller <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jerry Chu <hkchu@...gle.com>, Netdev <netdev@...r.kernel.org>,
"weiyongjun (A)" <weiyongjun1@...wei.com>,
wangkefeng 00227729 <wangkefeng.wang@...wei.com>
Subject: Re: [PATCH net] tcp: update skb->skb_mstamp more carefully
On Thu, Sep 14, 2017 at 6:57 AM, Neal Cardwell <ncardwell@...gle.com> wrote:
> On Wed, Sep 13, 2017 at 11:30 PM, Eric Dumazet <eric.dumazet@...il.com> wrote:
>>
>> 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.
> ...
>>
>> Signed-off-by: Eric Dumazet <edumazet@...gl.com>
>> Reported-by: liujian <liujian56@...wei.com>
>> ---
>> net/ipv4/tcp_output.c | 19 ++++++++++++-------
>> 1 file changed, 12 insertions(+), 7 deletions(-)
>
> Acked-by: Neal Cardwell <ncardwell@...gle.com>
Acked-by: Yuchung Cheng <ycheng@...gle.com>
nicely done!
>
> Thanks, Eric!
>
> neal
Powered by blists - more mailing lists