[RFC PATCH 0/3] mptcp: improve accept() and disconnect()

Paolo Abeni posted 3 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1636107361.git.pabeni@redhat.com
Maintainers: Alexei Starovoitov <ast@kernel.org>, Daniel Borkmann <daniel@iogearbox.net>, Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andrii@kernel.org>, Matthieu Baerts <matthieu.baerts@tessares.net>, Song Liu <songliubraving@fb.com>, Jakub Kicinski <kuba@kernel.org>, KP Singh <kpsingh@kernel.org>, John Fastabend <john.fastabend@gmail.com>, Mat Martineau <mathew.j.martineau@linux.intel.com>, Martin KaFai Lau <kafai@fb.com>, "David S. Miller" <davem@davemloft.net>
net/mptcp/pm.c         |  10 ++--
net/mptcp/pm_netlink.c |   3 ++
net/mptcp/protocol.c   | 120 ++++++++++++++++++++++++++---------------
net/mptcp/protocol.h   |  15 +++++-
net/mptcp/subflow.c    |   1 -
net/mptcp/token.c      |   1 +
6 files changed, 102 insertions(+), 48 deletions(-)

[RFC PATCH 0/3] mptcp: improve accept() and disconnect()

Posted by Paolo Abeni 1 month ago
As outlined in the public mtg, mptcp_accept() is currently quite
suboptimal, both from performance and code complexity

This series tries to clean it up, enforcing a wider lifetime for
the initial subflow, so that we don't need to acquire additional
references there.

To reach such goal we need to properly define the disconnect()
behavior, which is currently quite incomplete.

Some additional self-tests is likely required, 

Paolo Abeni (3):
  mptcp: never allow the PM to close a listener subflow
  mptcp: full disconnect implementation
  mptcp: cleanup accept and poll

 net/mptcp/pm.c         |  10 ++--
 net/mptcp/pm_netlink.c |   3 ++
 net/mptcp/protocol.c   | 120 ++++++++++++++++++++++++++---------------
 net/mptcp/protocol.h   |  15 +++++-
 net/mptcp/subflow.c    |   1 -
 net/mptcp/token.c      |   1 +
 6 files changed, 102 insertions(+), 48 deletions(-)

-- 
2.26.3


Re: [RFC PATCH 0/3] mptcp: improve accept() and disconnect()

Posted by Mat Martineau 4 weeks, 1 day ago
On Fri, 5 Nov 2021, Paolo Abeni wrote:

> As outlined in the public mtg, mptcp_accept() is currently quite
> suboptimal, both from performance and code complexity
>
> This series tries to clean it up, enforcing a wider lifetime for
> the initial subflow, so that we don't need to acquire additional
> references there.
>
> To reach such goal we need to properly define the disconnect()
> behavior, which is currently quite incomplete.
>
> Some additional self-tests is likely required,
>

Hi Paolo -

I don't have any changes to suggest right now except for the 
"msk->last_snd = 0" (vs NULL) that the CI found.

And this finally expunges MPTCP_DATA_READY too!

I agree that some kind of test that tries to close/destroy the msk while a 
listen() (or other calls) are pending would be very useful.

--
Mat Martineau
Intel