On Tue, 2025-09-16 at 18:27 +0200, Paolo Abeni wrote:
> This series includes several changes to the MPTCP RX path.
>
> The main goals are improving the RX performances _and_ increase the
> long term maintainability.
>
> Some changes reflects recent (or not so) improvements introduced in
> the
> TCP stack: patch 1, 2 and 3 are the MPTCP counter part of skb
> deferral
> free and auto-tuning improvements.
>
> Note that patch 3 could possibly fix issues/574, and overall such
> patch
> should protect from similar issues to arise in the future.
>
> All the others patches are aimed at introducing the socket backlog
> usage
> to process the packets received by the subflows while the msk socket
> is
> owned. That (almost completely) replace the processing currently
> happening in the mptcp_release_cb().
>
> The actual job is done in patch 9, while the others are cleanups
> needed
> to make the change tidy and more follow-up cleanups.
>
> Sharing earlier with known issues (at least on fallback socket) to
> raise
> awareness about this upcoming work.
Great! Thanks Paolo. Patch 3 "mptcp: rcvbuf auto-tuning improvement"
also fixes issue #487 "send() fails with EAGAIN in blocking IO mode"
that's been bothering me for quite a while. Therefore, please also add:
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/487
Meanwhile, I think this series closes issue #559 as well:
Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/559
-Geliang
>
> Paolo Abeni (12):
> mptcp: leverage skb deferral free
> tcp: make tcp_rcvbuf_grow() accessible to mptcp code
> mptcp: rcvbuf auto-tuning improvement
> mptcp: introduce the mptcp_init_skb helper.
> mptcp: remove unneeded mptcp_move_skb()
> mptcp: factor out a basic skb coalesce helper
> mptcp: minor move_skbs_to_msk() cleanup
> mptcp: cleanup fallback data fin reception
> mptcp: leverage the sk backlog for RX packet processing.
> mptcp: prevernt __mptcp_move_skbs() interferring with the fastpath
> mptcp: borrow forward memory from subflow
> mptcp: make fallback backlog aware
>
> include/net/tcp.h | 1 +
> net/ipv4/tcp_input.c | 2 +-
> net/mptcp/ctrl.c | 2 +
> net/mptcp/mib.c | 2 +
> net/mptcp/mib.h | 4 +
> net/mptcp/protocol.c | 338 ++++++++++++++++++++++++-----------------
> --
> net/mptcp/protocol.h | 8 +-
> net/mptcp/subflow.c | 24 +--
> 8 files changed, 220 insertions(+), 161 deletions(-)