[MPTCP next v3 00/12] mptcp: receive path improvement

Paolo Abeni posted 12 patches 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/multipath-tcp/mptcp_net-next tags/patchew/cover.1758296923.git.pabeni@redhat.com
include/net/tcp.h    |   1 +
net/ipv4/tcp_input.c |   2 +-
net/mptcp/mib.c      |   2 +
net/mptcp/mib.h      |   4 +
net/mptcp/protocol.c | 343 ++++++++++++++++++++++++-------------------
net/mptcp/protocol.h |   8 +-
net/mptcp/subflow.c  |  12 +-
7 files changed, 218 insertions(+), 154 deletions(-)
[MPTCP next v3 00/12] mptcp: receive path improvement
Posted by Paolo Abeni 3 weeks ago
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 10, 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.
---
v2 -> v3:
  - (hopefully) addressed CI failures
  - reordered to avoid trainsintly breaking fallback
  - refactor patch 3/12

v1 -> v2:
  - fix compile warn in patch 3
  - removed unneeded arg in patch 4
  - commit msg clarification and rebase

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: cleanup fallback dummy mapping generation.
  mptcp: leverage the sk backlog for RX packet processing.
  mptcp: prevernt __mptcp_move_skbs() interfering with the fastpath
  mptcp: borrow forward memory from subflow

 include/net/tcp.h    |   1 +
 net/ipv4/tcp_input.c |   2 +-
 net/mptcp/mib.c      |   2 +
 net/mptcp/mib.h      |   4 +
 net/mptcp/protocol.c | 343 ++++++++++++++++++++++++-------------------
 net/mptcp/protocol.h |   8 +-
 net/mptcp/subflow.c  |  12 +-
 7 files changed, 218 insertions(+), 154 deletions(-)

-- 
2.51.0
Re: [MPTCP next v3 00/12] mptcp: receive path improvement
Posted by MPTCP CI 3 weeks ago
Hi Paolo,

Thank you for your modifications, that's great!

Our CI did some validations and here is its report:

- KVM Validation: normal: Success! ✅
- KVM Validation: debug: Unstable: 1 failed test(s): selftest_mptcp_connect 🔴
- KVM Validation: btf-normal (only bpftest_all): Success! ✅
- KVM Validation: btf-debug (only bpftest_all): Success! ✅
- Task: https://github.com/multipath-tcp/mptcp_net-next/actions/runs/17863851247

Initiator: Patchew Applier
Commits: https://github.com/multipath-tcp/mptcp_net-next/commits/fe9e565e924a
Patchwork: https://patchwork.kernel.org/project/mptcp/list/?series=1004322


If there are some issues, you can reproduce them using the same environment as
the one used by the CI thanks to a docker image, e.g.:

    $ cd [kernel source code]
    $ docker run -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
        --pull always mptcp/mptcp-upstream-virtme-docker:latest \
        auto-normal

For more details:

    https://github.com/multipath-tcp/mptcp-upstream-virtme-docker


Please note that despite all the efforts that have been already done to have a
stable tests suite when executed on a public CI like here, it is possible some
reported issues are not due to your modifications. Still, do not hesitate to
help us improve that ;-)

Cheers,
MPTCP GH Action bot
Bot operated by Matthieu Baerts (NGI0 Core)
Re: [MPTCP next v3 00/12] mptcp: receive path improvement
Posted by Matthieu Baerts 3 weeks ago
Hi Paolo,

On 19/09/2025 17:53, 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 10, 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.
> ---
> v2 -> v3:
>   - (hopefully) addressed CI failures

Sadly, the CI doesn't seem that happy, but only in debug mode:

https://github.com/multipath-tcp/mptcp_net-next/actions/runs/17863851247

If it is easier for you, I can already apply (and send to netdev?) some
of these patches? e.g. 1-7/12?

Cheers,
Matt
-- 
Sponsored by the NGI0 Core fund.
Re: [MPTCP next v3 00/12] mptcp: receive path improvement
Posted by Paolo Abeni 2 weeks, 3 days ago
On 9/19/25 11:13 PM, Matthieu Baerts wrote:
> On 19/09/2025 17:53, 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 10, 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.
>> ---
>> v2 -> v3:
>>   - (hopefully) addressed CI failures
> 
> Sadly, the CI doesn't seem that happy, but only in debug mode:
> 
> https://github.com/multipath-tcp/mptcp_net-next/actions/runs/17863851247
> 
> If it is easier for you, I can already apply (and send to netdev?) some
> of these patches? e.g. 1-7/12?

I did a bit more testing. AFAICS patch 10 introduces a few chances of
additional failures (even on top of Geliang's patches) I *think* patch
1-7 and 12 are safe.

Thanks,

Paolo