Re: [PATCH net] tcp: fix TFO max_qlen accounting across reuseport migration

Kuniyuki Iwashima <[email protected]>
Newsgroups org.kernel.vger.netdev,org.kernel.vger.linux-kernel
Message-ID <CAAVpQUD4X+TpL+tTc3Gn4Uz8Yc7qbtXHA=u=UHjbhbXyt7dxdA@mail.gmail.com>
On Sun, Aug 2, 2026 at 11:18 PM Jiayuan Chen <[email protected]> wrote:
>
> A listener's TCP_FASTOPEN max_qlen stops being accurate and lets through
> far more pending Fast Open requests than it was configured for.
>
> This only shows up with SO_REUSEPORT listener migration, where closing a
> listener hands its still-pending TFO children over to a surviving one.
>
> fastopenq.qlen is charged in tcp_fastopen_create_child() when the child
> is created and uncharged in reqsk_fastopen_remove() when the handshake
> completes.  The uncharge follows rsk_listener of the request the child
> points at, and inet_reqsk_clone() has repointed the child at a new
> request owned by the new listener, so the ++ and the -- land on two
> different sockets.  The new listener's qlen drifts negative and its
> limit no longer binds.
>
> Charge the new listener during migration, like reqsk_queue_migrated()
> already does for queue->young and queue->qlen.
>
> Fixes: 54b92e841937 ("tcp: Migrate TCP_ESTABLISHED/TCP_SYN_RECV sockets in accept queues.")
> Signed-off-by: Jiayuan Chen <[email protected]>

Reviewed-by: Kuniyuki Iwashima <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.