All of lore.kernel.org
 help / color / mirror / Atom feed
From: SeongJae Park <sj38.park@gmail.com>
To: Neal Cardwell <ncardwell@google.com>
Cc: SeongJae Park <sj38.park@gmail.com>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	sjpark@amazon.com, Eric Dumazet <edumazet@google.com>,
	David Miller <davem@davemloft.net>,
	shuah@kernel.org, Netdev <netdev@vger.kernel.org>,
	linux-kselftest@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>,
	aams@amazon.com, SeongJae Park <sjpark@amazon.de>,
	Yuchung Cheng <ycheng@google.com>
Subject: Re: Re: Re: [PATCH 2/3] tcp: Reduce SYN resend delay if a suspicous ACK is received
Date: Sat,  1 Feb 2020 07:08:43 +0100	[thread overview]
Message-ID: <20200201060843.21626-1-sj38.park@gmail.com> (raw)
In-Reply-To: <CADVnQy=oFmmG-Z9QMafWLcALOBgohADgwScn2r+7CGFNAw5jvw@mail.gmail.com> (raw)

On Fri, 31 Jan 2020 22:55:34 -0500 Neal Cardwell <ncardwell@google.com> wrote:

> On Fri, Jan 31, 2020 at 5:18 PM SeongJae Park <sj38.park@gmail.com> wrote:
> >
> > On Fri, 31 Jan 2020 17:11:35 -0500 Neal Cardwell <ncardwell@google.com> wrote:
> >
> > > On Fri, Jan 31, 2020 at 1:12 PM Eric Dumazet <eric.dumazet@gmail.com> wrote:
> > > >
> > > >
> > > >
> > > > On 1/31/20 7:10 AM, Neal Cardwell wrote:
> > > > > On Fri, Jan 31, 2020 at 7:25 AM <sjpark@amazon.com> wrote:
> > > > >>
> > > > >> From: SeongJae Park <sjpark@amazon.de>
> > > > >>
> > > > >> When closing a connection, the two acks that required to change closing
> > > > >> socket's status to FIN_WAIT_2 and then TIME_WAIT could be processed in
> > > > >> reverse order.  This is possible in RSS disabled environments such as a
> > > > >> connection inside a host.
> > [...]
> > >
> > > I looked into fixing this, but my quick reading of the Linux
> > > tcp_rcv_state_process() code is that it should behave correctly and
> > > that a connection in FIN_WAIT_1 that receives a FIN/ACK should move to
> > > TIME_WAIT.
> > >
> > > SeongJae, do you happen to have a tcpdump trace of the problematic
> > > sequence where the "process A" ends up in FIN_WAIT_2 when it should be
> > > in TIME_WAIT?
> >
> > Hi Neal,
> >
> >
> > Yes, I have.  You can get it from the previous discussion for this patchset
> > (https://lore.kernel.org/bpf/20200129171403.3926-1-sjpark@amazon.com/).  As it
> > also has a reproducer program and how I got the tcpdump trace, I believe you
> > could get your own trace, too.  If you have any question or need help, feel
> > free to let me know. :)
> 
> Great. Thank you for the pointer.
> 
> I had one quick question: in the message:
>   https://lore.kernel.org/bpf/20200129171403.3926-1-sjpark@amazon.com/
> ... it showed a trace with the client sending a RST/ACK, but this
> email thread shows a FIN/ACK. I am curious about the motivation for
> the difference?

RST/ACK is traced if LINGER socket option is applied in the reproduce program,
and FIN/ACK is traced if it is not applied.  LINGER applied version shows the
spikes more frequently, but the main problem logic has no difference.  I
confirmed this by testing both of the two versions.

In the previous discussion, I showed the LINGER applied trace.  However, as
many other documents are using FIN/ACK, I changed the trace to FIN/ACK version
in this patchset for better understanding.  I will comment that it doesn't
matter whether it is FIN/ACK or RST/ACK in the next spin.


Thanks,
SeongJae Park

> 
> Anyway, thanks for the report, and thanks to Eric for further clarifying!
> 
> neal
> 

  reply	other threads:[~2020-02-01  6:09 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-31 12:24 [PATCH 0/3] Fix reconnection latency caused by FIN/ACK handling race sjpark
2020-01-31 12:24 ` [PATCH 1/3] net/ipv4/inet_timewait_sock: Fix inconsistent comments sjpark
2020-01-31 14:54   ` Eric Dumazet
2020-01-31 15:09     ` sjpark
2020-01-31 12:24 ` [PATCH 2/3] tcp: Reduce SYN resend delay if a suspicous ACK is received sjpark
2020-01-31 15:01   ` Eric Dumazet
2020-01-31 16:12     ` sjpark
2020-01-31 16:55       ` Eric Dumazet
2020-01-31 17:05         ` sjpark
2020-01-31 17:08           ` Eric Dumazet
2020-01-31 15:10   ` Neal Cardwell
2020-01-31 18:12     ` Eric Dumazet
2020-01-31 22:11       ` Neal Cardwell
2020-01-31 22:17         ` SeongJae Park
2020-02-01  3:55           ` Neal Cardwell
2020-02-01  6:08             ` SeongJae Park [this message]
2020-02-01 13:30               ` Neal Cardwell
2020-01-31 22:53         ` Eric Dumazet
2020-02-03 15:40           ` David Laight
2020-02-03 15:54             ` Eric Dumazet
2020-01-31 12:24 ` [PATCH 3/3] selftests: net: Add FIN_ACK processing order related latency spike test sjpark
2020-01-31 14:56   ` Eric Dumazet
2020-01-31 15:13     ` sjpark
2020-01-31 14:00 ` [PATCH 0/3] Fix reconnection latency caused by FIN/ACK handling race David Laight
2020-01-31 15:05   ` sjpark

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200201060843.21626-1-sj38.park@gmail.com \
    --to=sj38.park@gmail.com \
    --cc=aams@amazon.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=ncardwell@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=shuah@kernel.org \
    --cc=sjpark@amazon.com \
    --cc=sjpark@amazon.de \
    --cc=ycheng@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.