[PATCH v7 mptcp-next 0/4] mptcp: introduce backlog processing

Paolo Abeni posted 4 patches 3 days, 19 hours ago
Only 3 patches received!
There is a newer version of this series
net/mptcp/Kconfig      |   1 +
net/mptcp/fastopen.c   |   4 +-
net/mptcp/mib.c        |   1 -
net/mptcp/mib.h        |   1 -
net/mptcp/mptcp_diag.c |   3 +-
net/mptcp/protocol.c   | 112 +++++++++++++++++++++++++++++++++++------
net/mptcp/protocol.h   |  39 +++++++++++++-
7 files changed, 142 insertions(+), 19 deletions(-)
[PATCH v7 mptcp-next 0/4] mptcp: introduce backlog processing
Posted by Paolo Abeni 3 days, 19 hours ago
This series includes RX path improvement built around backlog processing

The main goals are improving the RX performances _and_ increase the
long term maintainability.

Patch 1 and 2 refactor the memory account logic in the RX path, so that
the msk don't need anymore to do fwd allocation, removing possible drop
sources.

Patch 3 and 4 cope with backlog processing. Patch 3 introduces the
helpers needed to manipulate the msk-level backlog, and the data struct
itself, without any actual functional change. Patch 4 finally use the
backlog for RX skb processing. Note that MPTCP can't use the sk_backlog,
as the mptcp release callback can also release and re-acquire the
msk-level spinlock and core backlog processing works under the
assumption that such event is not possible.

A relevant point is memory accounts for skbs in the backlog.

It's somewhat "original" due to MPTCP constraints. Such skbs use space
from the incoming subflow receive buffer, but are fwd memory accounted
on the msk, using memory borrowed by the subflow.

Instead the msk borrows memory from the subflow and reserve it for
the backlog - see patch 3 and 11 for the gory details.
---
v6 -> v7:
 - dropped merged patches
 - added patch 1/4
 - refactor borrow/account logic, see individual patches for the details

Matthieu Baerts (1):
  DO-NOT-MERGE: mptcp: enabled by default

Paolo Abeni (3):
  mptcp: handle first subflow closing consistently
  mptcp: borrow forward memory from subflow
  mptcp: introduce mptcp-level backlog

 net/mptcp/Kconfig      |   1 +
 net/mptcp/fastopen.c   |   4 +-
 net/mptcp/mib.c        |   1 -
 net/mptcp/mib.h        |   1 -
 net/mptcp/mptcp_diag.c |   3 +-
 net/mptcp/protocol.c   | 112 +++++++++++++++++++++++++++++++++++------
 net/mptcp/protocol.h   |  39 +++++++++++++-
 7 files changed, 142 insertions(+), 19 deletions(-)

-- 
2.51.0
Re: [PATCH v7 mptcp-next 0/4] mptcp: introduce backlog processing
Posted by Paolo Abeni 3 days, 18 hours ago
On 10/27/25 3:40 PM, Paolo Abeni wrote:
> This series includes RX path improvement built around backlog processing
> 
> The main goals are improving the RX performances _and_ increase the
> long term maintainability.
> 
> Patch 1 and 2 refactor the memory account logic in the RX path, so that
> the msk don't need anymore to do fwd allocation, removing possible drop
> sources.
> 
> Patch 3 and 4 cope with backlog processing. Patch 3 introduces the
> helpers needed to manipulate the msk-level backlog, and the data struct
> itself, without any actual functional change. Patch 4 finally use the
> backlog for RX skb processing. Note that MPTCP can't use the sk_backlog,
> as the mptcp release callback can also release and re-acquire the
> msk-level spinlock and core backlog processing works under the
> assumption that such event is not possible.
> 
> A relevant point is memory accounts for skbs in the backlog.
> 
> It's somewhat "original" due to MPTCP constraints. Such skbs use space
> from the incoming subflow receive buffer, but are fwd memory accounted
> on the msk, using memory borrowed by the subflow.
> 
> Instead the msk borrows memory from the subflow and reserve it for
> the backlog - see patch 3 and 11 for the gory details.

whoops, sorry PEBKAC here. Please ignore. I'll resend shortly hopefully
in a less corrupted form.

/P