public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] mptcp: rx path refactor
@ 2025-02-18 18:36 Matthieu Baerts (NGI0)
  2025-02-18 18:36 ` [PATCH net-next 1/7] mptcp: consolidate subflow cleanup Matthieu Baerts (NGI0)
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Matthieu Baerts (NGI0) @ 2025-02-18 18:36 UTC (permalink / raw)
  To: mptcp, Mat Martineau, Geliang Tang, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman
  Cc: Kuniyuki Iwashima, Willem de Bruijn, David Ahern,
	Jamal Hadi Salim, Cong Wang, Jiri Pirko, netdev, linux-kernel,
	Matthieu Baerts (NGI0)

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@kernel.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@kernel.org>


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-02-20  3:10 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-18 18:36 [PATCH net-next 0/7] mptcp: rx path refactor Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 1/7] mptcp: consolidate subflow cleanup Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 2/7] mptcp: drop __mptcp_fastopen_gen_msk_ackseq() Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 3/7] mptcp: move the whole rx path under msk socket lock protection Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 4/7] mptcp: cleanup mem accounting Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 5/7] net: dismiss sk_forward_alloc_get() Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 6/7] mptcp: dismiss __mptcp_rmem() Matthieu Baerts (NGI0)
2025-02-18 18:36 ` [PATCH net-next 7/7] mptcp: micro-optimize __mptcp_move_skb() Matthieu Baerts (NGI0)
2025-02-20  3:10 ` [PATCH net-next 0/7] mptcp: rx path refactor patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox