]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mptcp: record subflows in RPS table
authorChristoph Paasch <cpaasch@openai.com>
Tue, 2 Sep 2025 21:11:36 +0000 (23:11 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 3 Sep 2025 22:08:20 +0000 (15:08 -0700)
commit3bd4f98a4e2c601895f0ca8844098caedf4717a1
treeca3a13603de0262c509be848210b417d95ecf80d
parent929324913e0caabea91b50fa71e41d70b766f7dc
mptcp: record subflows in RPS table

Accelerated Receive Flow Steering (aRFS) relies on sockets recording
their RX flow hash into the rps_sock_flow_table so that incoming packets
are steered to the CPU where the application runs.

With MPTCP, the application interacts with the parent MPTCP socket while
data is carried over per-subflow TCP sockets. Without recording these
subflows, aRFS cannot steer interrupts and RX processing for the flows
to the desired CPU.

Record all subflows in the RPS table by calling sock_rps_record_flow()
for each subflow at the start of mptcp_sendmsg(), mptcp_recvmsg() and
mptcp_stream_accept(), by using the new helper
mptcp_rps_record_subflows().

It does not by itself improve throughput, but ensures that IRQ and RX
processing are directed to the right CPU, which is a
prerequisite for effective aRFS.

Signed-off-by: Christoph Paasch <cpaasch@openai.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20250902-net-next-mptcp-misc-feat-6-18-v2-4-fa02bb3188b1@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/mptcp/protocol.c