From: Paolo Abeni <pabeni@redhat.com>
To: mptcp@lists.linux.dev
Subject: [PATCH mptcp-next v2 0/7] mptcp: rx path refactor
Date: Fri, 6 Dec 2024 13:09:44 +0100 [thread overview]
Message-ID: <cover.1733486870.git.pabeni@redhat.com> (raw)
This is a batch of changes I had sitting in my local tree for a while.
Why another refactor you may ask? Two main resons:
- currently the mptcp RX path introduces quite a bit of 'exceptional'
accounting/locking processing WRT to plain TCP, adding up to the
implementation complexity in a misurable way
- the performance gap WRT plain TCP for single subflow connections is
quite measurable.
The present refactor addresses both the above items: most of the
additional complexity is dropped, and single stream performances
increase measurably - from 55Gbps to 71Gbps in my loopback test. As a
reference, plain TCP is around 84Gps on the same host.
The above comes to a price: the patch are invasive, even in subtle ways:
the chance of destabilizing the implementation is real (ence the
additional, intentional '-next' into the subj).
In any case keeping the patch hidden for longer was not going to do any
good, so here we are.
Changes from v1:
- fixed several data stream corruption and wake-up misses due
to multi subflows races
- added patches 1-3 mainly to address the above
- added an additional follow-up patch (patch 7) with more cleanup
Paolo Abeni (7):
mptcp: prevent excessive coalescing on receive
tcp: fix recvbuffer adjust on sleeping rcvmsg
mptcp: don't always assume copied data in mptcp_cleanup_rbuf()
mptcp: consolidate subflow cleanup
mptcp: move the whole rx path under msk socket lock protection
mptcp: cleanup mem accounting.
net: dismiss sk_forward_alloc_get()
include/net/sock.h | 13 ---
net/core/sock.c | 2 +-
net/ipv4/af_inet.c | 2 +-
net/ipv4/inet_diag.c | 2 +-
net/mptcp/fastopen.c | 4 +-
net/mptcp/protocol.c | 259 +++++++++++++------------------------------
net/mptcp/protocol.h | 6 +-
net/mptcp/subflow.c | 33 +++---
net/sched/em_meta.c | 2 +-
9 files changed, 104 insertions(+), 219 deletions(-)
--
2.45.2
next reply other threads:[~2024-12-06 12:10 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-06 12:09 Paolo Abeni [this message]
2024-12-06 12:10 ` [PATCH mptcp-next v2 1/7] mptcp: prevent excessive coalescing on receive Paolo Abeni
2024-12-10 12:03 ` Matthieu Baerts
2024-12-21 10:00 ` Matthieu Baerts
2024-12-27 9:40 ` Paolo Abeni
2024-12-30 18:24 ` Matthieu Baerts
2024-12-06 12:10 ` [PATCH mptcp-next v2 2/7] tcp: fix recvbuffer adjust on sleeping rcvmsg Paolo Abeni
2024-12-06 12:10 ` [PATCH mptcp-next v2 3/7] mptcp: don't always assume copied data in mptcp_cleanup_rbuf() Paolo Abeni
2024-12-06 12:10 ` [PATCH mptcp-next v2 4/7] mptcp: consolidate subflow cleanup Paolo Abeni
2024-12-06 12:11 ` [PATCH mptcp-next v2 5/7] mptcp: move the whole rx path under msk socket lock protection Paolo Abeni
2024-12-06 12:11 ` [PATCH mptcp-next v2 6/7] mptcp: cleanup mem accounting Paolo Abeni
2024-12-07 1:45 ` Mat Martineau
2024-12-10 9:00 ` Paolo Abeni
2024-12-06 12:11 ` [PATCH mptcp-next v2 7/7] net: dismiss sk_forward_alloc_get() Paolo Abeni
2024-12-06 13:17 ` [PATCH mptcp-next v2 0/7] mptcp: rx path refactor MPTCP CI
2024-12-06 16:41 ` Paolo Abeni
2024-12-21 2:12 ` Mat Martineau
2024-12-21 11:17 ` Matthieu Baerts
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=cover.1733486870.git.pabeni@redhat.com \
--to=pabeni@redhat.com \
--cc=mptcp@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox