[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250218-net-next-mptcp-rx-path-refactor-v1-0-4a47d90d7998@kernel.org>
Date: Tue, 18 Feb 2025 19:36:11 +0100
From: "Matthieu Baerts (NGI0)" <matttbe@...nel.org>
To: mptcp@...ts.linux.dev, Mat Martineau <martineau@...nel.org>,
Geliang Tang <geliang@...nel.org>, "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>, Simon Horman <horms@...nel.org>
Cc: Kuniyuki Iwashima <kuniyu@...zon.com>,
Willem de Bruijn <willemb@...gle.com>, David Ahern <dsahern@...nel.org>,
Jamal Hadi Salim <jhs@...atatu.com>, Cong Wang <xiyou.wangcong@...il.com>,
Jiri Pirko <jiri@...nulli.us>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, "Matthieu Baerts (NGI0)" <matttbe@...nel.org>
Subject: [PATCH net-next 0/7] mptcp: rx path refactor
Paolo worked on this RX path refactor for these two main reasons:
- 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 miserable 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 Paolo's loopback test. As
a reference, plain TCP was around 84Gbps on the same host.
The above comes to a price: the patch are invasive, even in subtle ways.
Note: patch 5/7 removes the sk_forward_alloc_get() helper, which caused
some trivial modifications in different places in the net tree: sockets,
IPv4, sched. That's why a few more people have been Cc here. Feel free
to only look at this patch 5/7.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@...nel.org>
---
Paolo Abeni (7):
mptcp: consolidate subflow cleanup
mptcp: drop __mptcp_fastopen_gen_msk_ackseq()
mptcp: move the whole rx path under msk socket lock protection
mptcp: cleanup mem accounting
net: dismiss sk_forward_alloc_get()
mptcp: dismiss __mptcp_rmem()
mptcp: micro-optimize __mptcp_move_skb()
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 | 27 +----
net/mptcp/protocol.c | 317 ++++++++++++++++-----------------------------------
net/mptcp/protocol.h | 22 ++--
net/mptcp/subflow.c | 36 +++---
net/sched/em_meta.c | 2 +-
9 files changed, 134 insertions(+), 289 deletions(-)
---
base-commit: b4cb730862cf4f59ac3dcb83b9ac4eeb29dbfb0e
change-id: 20250106-net-next-mptcp-rx-path-refactor-f44579efb57c
Best regards,
--
Matthieu Baerts (NGI0) <matttbe@...nel.org>
Powered by blists - more mailing lists