From: Geliang Tang <geliang@kernel.org>
To: Matthieu Baerts <matttbe@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
mptcp@lists.linux.dev
Subject: Re: [PATCH v5 mptcp-next 00/10] mptcp: introduce backlog processing
Date: Wed, 08 Oct 2025 11:07:16 +0800 [thread overview]
Message-ID: <d0a814c364e744ca6b836ccd5b6e9146882e8d42.camel@kernel.org> (raw)
In-Reply-To: <2c9f131e-ef34-4916-8aab-e1420e1ae90b@kernel.org>
Hi Paolo, Matt,
On Mon, 2025-10-06 at 19:07 +0200, Matthieu Baerts wrote:
> Hi Paolo,
>
> On 06/10/2025 10:11, Paolo Abeni wrote:
> > This series includes RX path improvement built around backlog
> > processing
> Thank you for the new version! This is not a review, but just a note
> to
> tell you patchew didn't manage to apply the patches due to the same
> conflict that was already there with the v4 (mptcp_init_skb()
> parameters
> have been moved to the previous line). I just applied the patches
> manually. While at it, I also used this test branch for syzkaller to
> validate them.
>
> (Also, on patch "mptcp: drop the __mptcp_data_ready() helper", git
> complained that there is a trailing whitespace.)
Sorry, patches 9-10 break my "implement mptcp read_sock" v12 series. I
rebased this series on patches 1-8, it works well. But after applying
patches 9-10, I changed mptcp_recv_skb() in [1] from
static struct sk_buff *mptcp_recv_skb(struct sock *sk, u32 *off)
{
struct mptcp_sock *msk = mptcp_sk(sk);
struct sk_buff *skb;
u32 offset;
if (skb_queue_empty(&sk->sk_receive_queue))
__mptcp_move_skbs(sk);
while ((skb = skb_peek(&sk->sk_receive_queue)) != NULL) {
offset = MPTCP_SKB_CB(skb)->offset;
if (offset < skb->len) {
*off = offset;
return skb;
}
mptcp_eat_recv_skb(sk, skb);
}
return NULL;
}
to
static struct sk_buff *mptcp_recv_skb(struct sock *sk, u32 *off)
{
struct mptcp_sock *msk = mptcp_sk(sk);
struct sk_buff *skb;
u32 offset;
if (!list_empty(&msk->backlog_list))
mptcp_move_skbs(sk);
while ((skb = skb_peek(&sk->sk_receive_queue)) != NULL) {
offset = MPTCP_SKB_CB(skb)->offset;
if (offset < skb->len) {
*off = offset;
return skb;
}
mptcp_eat_recv_skb(sk, skb);
}
return NULL;
}
The splice tests (mptcp_connect_splice.sh) have a low probability
(approximately 1 in 100) of reporting timeout failures:
=== Attempt: 158 (Wed, 08 Oct 2025 02:35:45 +0000) ===
Selftest Test: ./mptcp_connect_splice.sh
TAP version 13
1..1
# INFO: set ns3-0wY081 dev ns3eth2: ethtool -K gso off gro off
# INFO: set ns4-MjBWza dev ns4eth3: ethtool -K tso off gro off
# Created /tmp/tmp.rxe4DwYW9E (size 5136 B) containing data sent by
client
# Created /tmp/tmp.0H0GbllUo9 (size 7193203 B) containing data sent by
server
# 01 New MPTCP socket can be blocked via sysctl
[ OK ]
# 02 Validating network environment with pings
[ OK ]
# INFO: Using loss of 0.07% delay 21 ms reorder 99% 66% with delay 5ms
on ns3eth4
# INFO: extra options: -m splice
# 03 ns1 MPTCP -> ns1 (10.0.1.1:10000 ) MPTCP (duration
152ms) [ OK ]
# 04 ns1 MPTCP -> ns1 (10.0.1.1:10001 ) TCP (duration
152ms) [ OK ]
# 05 ns1 TCP -> ns1 (10.0.1.1:10002 ) MPTCP (duration
149ms) [ OK ]
# 06 ns1 MPTCP -> ns1 (dead:beef:1::1:10003) MPTCP (duration
151ms) [ OK ]
# 07 ns1 MPTCP -> ns1 (dead:beef:1::1:10004) TCP (duration
169ms) [ OK ]
# 08 ns1 TCP -> ns1 (dead:beef:1::1:10005) MPTCP (duration
152ms) [ OK ]
# 09 ns1 MPTCP -> ns2 (10.0.1.2:10006 ) MPTCP (duration
172ms) [ OK ]
# 10 ns1 MPTCP -> ns2 (dead:beef:1::2:10007) MPTCP (duration
172ms) [ OK ]
# 11 ns1 MPTCP -> ns2 (10.0.2.1:10008 ) MPTCP (duration
157ms) [ OK ]
# 12 ns1 MPTCP -> ns2 (dead:beef:2::1:10009) MPTCP (duration
157ms) [ OK ]
# 13 ns1 MPTCP -> ns3 (10.0.2.2:10010 ) MPTCP (duration
497ms) [ OK ]
# 14 ns1 MPTCP -> ns3 (dead:beef:2::2:10011) MPTCP (duration
500ms) [ OK ]
# 15 ns1 MPTCP -> ns3 (10.0.3.2:10012 ) MPTCP (duration
602ms) [ OK ]
# 16 ns1 MPTCP -> ns3 (dead:beef:3::2:10013) MPTCP (duration
571ms) [ OK ]
# 17 ns1 MPTCP -> ns4 (10.0.3.1:10014 ) MPTCP (duration
544ms) [ OK ]
# 18 ns1 MPTCP -> ns4 (dead:beef:3::1:10015) MPTCP (duration
627ms) [ OK ]
# 19 ns2 MPTCP -> ns1 (10.0.1.1:10016 ) MPTCP (duration
136ms) [ OK ]
# 20 ns2 MPTCP -> ns1 (dead:beef:1::1:10017) MPTCP (duration
181ms) [ OK ]
# 21 ns2 MPTCP -> ns3 (10.0.2.2:10018 ) MPTCP (duration
415ms) [ OK ]
# 22 ns2 MPTCP -> ns3 (dead:beef:2::2:10019) MPTCP (duration
490ms) [ OK ]
# 23 ns2 MPTCP -> ns3 (10.0.3.2:10020 ) MPTCP (duration
438ms) [ OK ]
# 24 ns2 MPTCP -> ns3 (dead:beef:3::2:10021) MPTCP (duration
498ms) [ OK ]
# 25 ns2 MPTCP -> ns4 (10.0.3.1:10022 ) MPTCP (duration
602ms) [ OK ]
# 26 ns2 MPTCP -> ns4 (dead:beef:3::1:10023) MPTCP (duration
559ms) [ OK ]
# 27 ns3 MPTCP -> ns1 (10.0.1.1:10024 ) MPTCP (duration
580ms) [ OK ]
# 28 ns3 MPTCP -> ns1 (dead:beef:1::1:10025) MPTCP (duration
603ms) [ OK ]
# 29 ns3 MPTCP -> ns2 (10.0.1.2:10026 ) MPTCP (duration
628ms) [ OK ]
# 30 ns3 MPTCP -> ns2 (dead:beef:1::2:10027) MPTCP (duration
451ms) [ OK ]
# 31 ns3 MPTCP -> ns2 (10.0.2.1:10028 ) MPTCP (duration
416ms) [ OK ]
# 32 ns3 MPTCP -> ns2 (dead:beef:2::1:10029) MPTCP (duration
497ms) [ OK ]
# 33 ns3 MPTCP -> ns4 (10.0.3.1:10030 ) MPTCP (duration
159ms) [ OK ]
# 34 ns3 MPTCP -> ns4 (dead:beef:3::1:10031) MPTCP (duration
156ms) [ OK ]
# 35 ns4 MPTCP -> ns1 (10.0.1.1:10032 ) MPTCP (duration
574ms) [ OK ]
# 36 ns4 MPTCP -> ns1 (dead:beef:1::1:10033) MPTCP (duration
863ms) [ OK ]
# 37 ns4 MPTCP -> ns2 (10.0.1.2:10034 ) MPTCP (duration
471ms) [ OK ]
# 38 ns4 MPTCP -> ns2 (dead:beef:1::2:10035) MPTCP (duration
538ms) [ OK ]
# 39 ns4 MPTCP -> ns2 (10.0.2.1:10036 ) MPTCP (duration
520ms) [ OK ]
# 40 ns4 MPTCP -> ns2 (dead:beef:2::1:10037) MPTCP (duration
511ms) [ OK ]
# 41 ns4 MPTCP -> ns3 (10.0.2.2:10038 ) MPTCP (duration
137ms) [ OK ]
# 42 ns4 MPTCP -> ns3 (dead:beef:2::2:10039) MPTCP (duration
155ms) [ OK ]
# 43 ns4 MPTCP -> ns3 (10.0.3.2:10040 ) MPTCP (duration
563ms) [ OK ]
# 44 ns4 MPTCP -> ns3 (dead:beef:3::2:10041) MPTCP (duration
152ms) [ OK ]
# INFO: with peek mode: saveWithPeek
# 45 ns1 MPTCP -> ns1 (10.0.1.1:10042 ) MPTCP (duration
150ms) [ OK ]
# 46 ns1 MPTCP -> ns1 (10.0.1.1:10043 ) TCP (duration
184ms) [ OK ]
# 47 ns1 TCP -> ns1 (10.0.1.1:10044 ) MPTCP (duration
153ms) [ OK ]
# 48 ns1 MPTCP -> ns1 (dead:beef:1::1:10045) MPTCP (duration
154ms) [ OK ]
# 49 ns1 MPTCP -> ns1 (dead:beef:1::1:10046) TCP (duration
148ms) [ OK ]
# 50 ns1 TCP -> ns1 (dead:beef:1::1:10047) MPTCP (duration
175ms) [ OK ]
# INFO: with peek mode: saveAfterPeek
# 51 ns1 MPTCP -> ns1 (10.0.1.1:10048 ) MPTCP (duration
175ms) [ OK ]
# 52 ns1 MPTCP -> ns1 (10.0.1.1:10049 ) TCP (duration
155ms) [ OK ]
# 53 ns1 TCP -> ns1 (10.0.1.1:10050 ) MPTCP (duration
146ms) [ OK ]
# 54 ns1 MPTCP -> ns1 (dead:beef:1::1:10051) MPTCP (duration
153ms) [ OK ]
# 55 ns1 MPTCP -> ns1 (dead:beef:1::1:10052) TCP (duration
153ms) [ OK ]
# 56 ns1 TCP -> ns1 (dead:beef:1::1:10053) MPTCP (duration
151ms) [ OK ]
# INFO: with MPTFO start
# 57 ns2 MPTCP -> ns1 (10.0.1.1:10054 ) MPTCP (duration
60989ms) [FAIL] client exit code 0, server 124
#
# netns ns1-RqXF2p (listener) socket stat for 10054:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# tcp ESTAB 0 0 10.0.1.1:10054 10.0.1.2:55516
ino:2064372 sk:1 cgroup:unreachable:1 <->
# skmem:(r0,rb131072,t0,tb340992,f0,w0,o0,bl0,d0) sack cubic
wscale:8,8 rto:206 rtt:5.026/10.034 ato:40 mss:1460 pmtu:1500
rcvmss:1436 advmss:1460 cwnd:10 bytes_sent:115312 bytes_retrans:1560
bytes_acked:113752 bytes_received:5136 segs_out:85 segs_in:16
data_segs_out:83 data_segs_in:4 send 23239156bps lastsnd:60939
lastrcv:61035 lastack:60912 pacing_rate 343879640bps delivery_rate
1994680bps delivered:84 busy:123ms sndbuf_limited:41ms(33.3%)
retrans:0/2 dsack_dups:2 rcv_space:14600 rcv_ssthresh:75432
minrtt:0.003 rcv_wnd:75520 tcp-ulp-mptcp flags:Mec
token:0000(id:0)/32ed0950(id:0) seq:2946228641406205031 sfseq:1
ssnoff:1349223625 maplen:5136
# mptcp LAST-ACK 0 0 10.0.1.1:10054 10.0.1.2:55516
timer:(keepalive,59sec,0) ino:0 sk:2 cgroup:unreachable:1 ---
# skmem:(r0,rb131072,t0,tb345088,f4088,w352264,o0,bl0,d0)
subflows_max:2 remote_key token:32ed0950 write_seq:6317574787800720824
snd_una:6317574787800376423 rcv_nxt:2946228641406210168
bytes_sent:113752 bytes_received:5136 bytes_acked:113752
subflows_total:1 last_data_sent:60954 last_data_recv:61036
last_ack_recv:60913
# TcpPassiveOpens 1 0.0
# TcpInSegs 13 0.0
# TcpOutSegs 84 0.0
# TcpRetransSegs 2 0.0
# TcpExtTCPPureAcks 11 0.0
# TcpExtTCPLossProbes 3 0.0
# TcpExtTCPDSACKRecv 2 0.0
# TcpExtTCPDSACKIgnoredNoUndo 2 0.0
# TcpExtTCPFastOpenCookieReqd 1 0.0
# TcpExtTCPOrigDataSent 81 0.0
# TcpExtTCPDelivered 83 0.0
# TcpExtTCPDSACKRecvSegs 2 0.0
# MPTcpExtMPCapableSYNRX 1 0.0
# MPTcpExtMPCapableACKRX 1 0.0
#
# netns ns2-xZI1rh (connector) socket stat for 10054:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# tcp ESTAB 0 0 10.0.1.2:55516 10.0.1.1:10054
ino:2065678 sk:3 cgroup:unreachable:1 <->
# skmem:(r0,rb131072,t0,tb46080,f12288,w0,o0,bl0,d2) sack cubic
wscale:8,8 rto:201 rtt:0.029/0.016 ato:80 mss:1460 pmtu:1500
rcvmss:1432 advmss:1460 cwnd:10 bytes_sent:5136 bytes_acked:5137
bytes_received:113752 segs_out:16 segs_in:86 data_segs_out:4
data_segs_in:83 send 4027586207bps lastsnd:61068 lastrcv:60986
lastack:60972 pacing_rate 7852100840bps delivery_rate 6674285712bps
delivered:5 rcv_rtt:0.043 rcv_space:14600 rcv_ssthresh:114691
minrtt:0.007 snd_wnd:75520 tcp-ulp-mptcp flags:Mmec
token:0000(id:0)/73d713b3(id:0) seq:6317574787800368999 sfseq:106329
ssnoff:821551077 maplen:7424
# mptcp FIN-WAIT-2 124504 0 10.0.1.2:55516 10.0.1.1:10054
timer:(keepalive,,0) ino:0 sk:4 cgroup:unreachable:1 ---
# skmem:(r124504,rb131072,t0,tb50176,f6568,w0,o0,bl0,d0)
subflows_max:2 remote_key token:73d713b3 write_seq:2946228641406210168
snd_una:2946228641406210168 rcv_nxt:6317574787800376423 bytes_sent:5136
bytes_received:113752 bytes_acked:5137 subflows_total:1
last_data_sent:61068 last_data_recv:60986 last_ack_recv:60972
# TcpActiveOpens 1 0.0
# TcpInSegs 17 0.0
# TcpOutSegs 16 0.0
# TcpExtDelayedACKs 3 0.0
# TcpExtDelayedACKLost 2 0.0
# TcpExtTCPPureAcks 2 0.0
# TcpExtTCPDSACKOldSent 2 0.0
# TcpExtTCPToZeroWindowAdv 1 0.0
# TcpExtTCPOrigDataSent 4 0.0
# TcpExtTCPDelivered 5 0.0
# MPTcpExtMPCapableSYNTX 1 0.0
# MPTcpExtMPCapableSYNACKRX 1 0.0
#
# 58 ns2 MPTCP -> ns1 (10.0.1.1:10055 ) MPTCP (duration
60992ms) [FAIL] client exit code 0, server 124
#
# netns ns1-RqXF2p (listener) socket stat for 10055:
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# TcpPassiveOpens 1 0.0
# TcpEstabResets 2 0.0
# TcpInSegs 28 0.0
# TcpOutSegs 142 0.0
# TcpRetransSegs 22 0.0
# TcpExtTCPPureAcks 23 0.0
# TcpExtTCPLostRetransmit 8 0.0
# TcpExtTCPSlowStartRetrans 13 0.0
# TcpExtTCPTimeouts 1 0.0
# TcpExtTCPLossProbes 1 0.0
# TcpExtTCPBacklogCoalesce 1 0.0
# TcpExtTCPFastOpenPassive 1 0.0
# TcpExtTCPOrigDataSent 138 0.0
# TcpExtTCPDelivered 83 0.0
# TcpExtTcpTimeoutRehash 1 0.0
# MPTcpExtMPCapableSYNRX 1 0.0
# MPTcpExtMPCapableACKRX 1 0.0
# MPTcpExtMPFastcloseRx 2 0.0
# MPTcpExtMPRstRx 2 0.0
# MPTcpExtSndWndShared 5 0.0
#
# netns ns2-xZI1rh (connector) socket stat for 10055:
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# TcpActiveOpens 1 0.0
# TcpEstabResets 2 0.0
# TcpInSegs 32 0.0
# TcpOutSegs 30 0.0
# TcpOutRsts 2 0.0
# TcpExtBeyondWindow 4 0.0
# TcpExtDelayedACKs 2 0.0
# TcpExtTCPPureAcks 3 0.0
# TcpExtTCPFastOpenActive 1 0.0
# TcpExtTCPToZeroWindowAdv 1 0.0
# TcpExtTCPOrigDataSent 4 0.0
# TcpExtTCPDelivered 5 0.0
# TcpExtTCPZeroWindowDrop 10 0.0
# MPTcpExtMPCapableSYNTX 1 0.0
# MPTcpExtMPCapableSYNACKRX 1 0.0
# MPTcpExtMPFastcloseTx 2 0.0
# MPTcpExtMPRstTx 2 0.0
#
# 59 ns2 MPTCP -> ns1 (dead:beef:1::1:10056) MPTCP (duration
60983ms) [FAIL] client exit code 0, server 124
#
# netns ns1-RqXF2p (listener) socket stat for 10056:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State Recv-Q Send-Q Local Address:Port Peer
Address:Port
# tcp ESTAB 0 0 [dead:beef:1::1]:10056
[dead:beef:1::2]:51008 ino:2066517 sk:5 cgroup:unreachable:1 <->
# skmem:(r0,rb131072,t0,tb354816,f0,w0,o0,bl0,d0) sack cubic
wscale:8,8 rto:206 rtt:5.142/10.26 ato:40 mss:1440 pmtu:1500
rcvmss:1416 advmss:1440 cwnd:10 bytes_sent:116192 bytes_retrans:1860
bytes_acked:114332 bytes_received:5136 segs_out:88 segs_in:16
data_segs_out:86 data_segs_in:4 send 22403734bps lastsnd:60928
lastrcv:61025 lastack:60901 pacing_rate 345009112bps delivery_rate
1967640bps delivered:87 busy:123ms sndbuf_limited:41ms(33.3%)
retrans:0/2 dsack_dups:2 rcv_space:14400 rcv_ssthresh:74532
minrtt:0.003 rcv_wnd:74752 tcp-ulp-mptcp flags:Mec
token:0000(id:0)/dfc0f4f3(id:0) seq:4063451370598395855 sfseq:1
ssnoff:3788096358 maplen:5136
# mptcp LAST-ACK 0 0 [dead:beef:1::1]:10056
[dead:beef:1::2]:51008 timer:(keepalive,59sec,0) ino:0 sk:6
cgroup:unreachable:1 ---
# skmem:(r0,rb131072,t0,tb358912,f316,w351940,o0,bl0,d0)
subflows_max:2 remote_key token:dfc0f4f3 write_seq:2127521061748173342
snd_una:2127521061747829521 rcv_nxt:4063451370598400992
bytes_sent:114332 bytes_received:5136 bytes_acked:114332
subflows_total:1 last_data_sent:60942 last_data_recv:61025
last_ack_recv:60901
# TcpPassiveOpens 1 0.0
# TcpInSegs 13 0.0
# TcpOutSegs 87 0.0
# TcpRetransSegs 2 0.0
# TcpExtTCPPureAcks 11 0.0
# TcpExtTCPLossProbes 3 0.0
# TcpExtTCPDSACKRecv 2 0.0
# TcpExtTCPDSACKIgnoredNoUndo 2 0.0
# TcpExtTCPFastOpenCookieReqd 1 0.0
# TcpExtTCPOrigDataSent 84 0.0
# TcpExtTCPDelivered 86 0.0
# TcpExtTCPDSACKRecvSegs 2 0.0
# MPTcpExtMPCapableSYNRX 1 0.0
# MPTcpExtMPCapableACKRX 1 0.0
#
# netns ns2-xZI1rh (connector) socket stat for 10056:
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Failed to find cgroup2 mount
# Netid State Recv-Q Send-Q Local Address:Port Peer
Address:Port
# tcp ESTAB 0 0 [dead:beef:1::2]:51008
[dead:beef:1::1]:10056 ino:2065857 sk:7 cgroup:unreachable:1 <->
# skmem:(r0,rb131072,t0,tb46080,f12288,w0,o0,bl0,d2) sack cubic
wscale:8,8 rto:201 rtt:0.032/0.018 ato:80 mss:1440 pmtu:1500
rcvmss:1412 advmss:1440 cwnd:10 bytes_sent:5136 bytes_acked:5137
bytes_received:114332 segs_out:16 segs_in:89 data_segs_out:4
data_segs_in:86 send 3600000000bps lastsnd:61060 lastrcv:60977
lastack:60963 pacing_rate 7116602312bps delivery_rate 6582857136bps
delivered:5 rcv_rtt:0.051 rcv_space:14400 rcv_ssthresh:115128
minrtt:0.007 snd_wnd:74752 tcp-ulp-mptcp flags:Mmec
token:0000(id:0)/45f63d89(id:0) seq:2127521061747821841 sfseq:106653
ssnoff:320893875 maplen:7680
# mptcp FIN-WAIT-2 124188 0 [dead:beef:1::2]:51008
[dead:beef:1::1]:10056 timer:(keepalive,,0) ino:0 sk:8
cgroup:unreachable:1 ---
# skmem:(r124188,rb131072,t0,tb50176,f6884,w0,o0,bl0,d0)
subflows_max:2 remote_key token:45f63d89 write_seq:4063451370598400992
snd_una:4063451370598400992 rcv_nxt:2127521061747829521 bytes_sent:5136
bytes_received:114332 bytes_acked:5137 subflows_total:1
last_data_sent:61060 last_data_recv:60977 last_ack_recv:60963
# TcpActiveOpens 1 0.0
# TcpInSegs 17 0.0
# TcpOutSegs 16 0.0
# TcpExtDelayedACKs 3 0.0
# TcpExtDelayedACKLost 2 0.0
# TcpExtTCPPureAcks 2 0.0
# TcpExtTCPDSACKOldSent 2 0.0
# TcpExtTCPToZeroWindowAdv 1 0.0
# TcpExtTCPOrigDataSent 4 0.0
# TcpExtTCPDelivered 5 0.0
# MPTcpExtMPCapableSYNTX 1 0.0
# MPTcpExtMPCapableSYNACKRX 1 0.0
#
# 60 ns2 MPTCP -> ns1 (dead:beef:1::1:10057) MPTCP (duration
60988ms) [FAIL] client exit code 0, server 124
#
# netns ns1-RqXF2p (listener) socket stat for 10057:
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# TcpPassiveOpens 1 0.0
# TcpEstabResets 2 0.0
# TcpInSegs 29 0.0
# TcpOutSegs 144 0.0
# TcpRetransSegs 22 0.0
# TcpExtTCPPureAcks 23 0.0
# TcpExtTCPLostRetransmit 8 0.0
# TcpExtTCPSlowStartRetrans 13 0.0
# TcpExtTCPTimeouts 1 0.0
# TcpExtTCPLossProbes 1 0.0
# TcpExtTCPBacklogCoalesce 2 0.0
# TcpExtTCPFastOpenPassive 1 0.0
# TcpExtTCPOrigDataSent 140 0.0
# TcpExtTCPDelivered 84 0.0
# TcpExtTcpTimeoutRehash 1 0.0
# MPTcpExtMPCapableSYNRX 1 0.0
# MPTcpExtMPCapableACKRX 1 0.0
# MPTcpExtMPFastcloseRx 2 0.0
# MPTcpExtMPRstRx 2 0.0
# MPTcpExtSndWndShared 5 0.0
#
# netns ns2-xZI1rh (connector) socket stat for 10057:
# Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
# TcpActiveOpens 1 0.0
# TcpEstabResets 2 0.0
# TcpInSegs 32 0.0
# TcpOutSegs 31 0.0
# TcpOutRsts 2 0.0
# TcpExtBeyondWindow 4 0.0
# TcpExtDelayedACKs 3 0.0
# TcpExtTCPPureAcks 3 0.0
# TcpExtTCPFastOpenActive 1 0.0
# TcpExtTCPToZeroWindowAdv 1 0.0
# TcpExtTCPOrigDataSent 4 0.0
# TcpExtTCPDelivered 5 0.0
# TcpExtTCPZeroWindowDrop 10 0.0
# MPTcpExtMPCapableSYNTX 1 0.0
# MPTcpExtMPCapableSYNACKRX 1 0.0
# MPTcpExtMPFastcloseTx 2 0.0
# MPTcpExtMPRstTx 2 0.0
#
# INFO: with MPTFO end
# [FAIL] Tests with MPTFO have failed
# INFO: test tproxy ipv4
# 61 ns1 MPTCP -> ns2 (10.0.3.1:20000 ) MPTCP (duration
161ms) [ OK ]
# INFO: tproxy ipv4 pass
# INFO: test tproxy ipv6
# 62 ns1 MPTCP -> ns2 (dead:beef:3::1:20000) MPTCP (duration
163ms) [ OK ]
# INFO: tproxy ipv6 pass
# INFO: disconnect
# 63 ns1 MPTCP -> ns1 (10.0.1.1:20001 ) MPTCP (duration
54ms) [ OK ]
# 64 ns1 MPTCP -> ns1 (10.0.1.1:20002 ) TCP (duration
56ms) [ OK ]
# 65 ns1 TCP -> ns1 (10.0.1.1:20003 ) MPTCP (duration
59ms) [ OK ]
# 66 ns1 MPTCP -> ns1 (dead:beef:1::1:20004) MPTCP (duration
60ms) [ OK ]
# 67 ns1 MPTCP -> ns1 (dead:beef:1::1:20005) TCP (duration
56ms) [ OK ]
# 68 ns1 TCP -> ns1 (dead:beef:1::1:20006) MPTCP (duration
55ms) [ OK ]
# Time: 288 seconds
not ok 1 test: selftest_mptcp_connect_splice # FAIL
# time=288
=== ERROR after 158 attempts (Wed, 08 Oct 2025 02:40:34 +0000) ===
Stopped after 158 attempts
I'm not sure if this error indicates a bug in patches 9-10, or if
there's an issue with the implementation of mptcp_recv_skb(). I'm still
unsure how to resolve it. Could you please give me some suggestions?
But patches 1-8 look good to me indeed:
Reviewed-by: Geliang Tang <geliang@kernel.org>
I'm wondering if we can merge patches 1-8 into the export branch first.
I changed the statues of them as "Queued" on patchwork.
Besides, I have one minor comment on patch 9, which I'll reply directly
on patch 9.
Thanks,
-Geliang
[1]
https://patchwork.kernel.org/project/mptcp/patch/2f159972f4aac7002a46ebc03b9d3898ece4c081.1758975929.git.tanggeliang@kylinos.cn/
>
> Cheers,
> Matt
next prev parent reply other threads:[~2025-10-08 3:07 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-06 8:11 [PATCH v5 mptcp-next 00/10] mptcp: introduce backlog processing Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 01/10] mptcp: borrow forward memory from subflow Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 02/10] mptcp: cleanup fallback data fin reception Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 03/10] mptcp: cleanup fallback dummy mapping generation Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 04/10] mptcp: fix MSG_PEEK stream corruption Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 05/10] mptcp: ensure the kernel PM does not take action too late Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 06/10] mptcp: do not miss early first subflow close event notification Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 07/10] mptcp: make mptcp_destroy_common() static Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 08/10] mptcp: drop the __mptcp_data_ready() helper Paolo Abeni
2025-10-06 8:12 ` [PATCH v5 mptcp-next 09/10] mptcp: introduce mptcp-level backlog Paolo Abeni
2025-10-08 3:09 ` Geliang Tang
2025-10-20 19:45 ` Mat Martineau
2025-10-06 8:12 ` [PATCH v5 mptcp-next 10/10] mptcp: leverage the backlog for RX packet processing Paolo Abeni
2025-10-20 23:32 ` Mat Martineau
2025-10-21 17:21 ` Paolo Abeni
2025-10-21 23:53 ` Mat Martineau
2025-10-06 17:07 ` [PATCH v5 mptcp-next 00/10] mptcp: introduce backlog processing Matthieu Baerts
2025-10-08 3:07 ` Geliang Tang [this message]
2025-10-08 7:30 ` Paolo Abeni
2025-10-09 6:54 ` Geliang Tang
2025-10-09 7:52 ` Paolo Abeni
2025-10-09 9:02 ` Geliang Tang
2025-10-09 10:23 ` Paolo Abeni
2025-10-09 13:58 ` Paolo Abeni
2025-10-10 8:21 ` Paolo Abeni
2025-10-10 12:22 ` Geliang Tang
2025-10-13 9:07 ` Geliang Tang
2025-10-13 13:29 ` Paolo Abeni
2025-10-13 17:07 ` Paolo Abeni
2025-10-15 9:00 ` Paolo Abeni
2025-10-17 6:38 ` Geliang Tang
2025-10-18 0:16 ` Mat Martineau
2025-10-06 17:43 ` MPTCP CI
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d0a814c364e744ca6b836ccd5b6e9146882e8d42.camel@kernel.org \
--to=geliang@kernel.org \
--cc=matttbe@kernel.org \
--cc=mptcp@lists.linux.dev \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox