Re: [PATCH net-next v5 1/2] net: Add a second bind table hashed by port and address

Kuniyuki Iwashima <[email protected]>
Newsgroups org.kernel.vger.dccp,org.kernel.vger.netdev
Message-ID <[email protected]>
From: Joanne Koong <[email protected]>
Date: Wed, 18 May 2022 16:19:11 -0700
> We currently have one tcp bind table (bhash) which hashes by port
> number only. In the socket bind path, we check for bind conflicts by
> traversing the specified port's inet_bind2_bucket while holding the
> bucket's spinlock (see inet_csk_get_port() and inet_csk_bind_conflict()).
> 
> In instances where there are tons of sockets hashed to the same port
> at different addresses, checking for a bind conflict is time-intensive
> and can cause softirq cpu lockups, as well as stops new tcp connections
> since __inet_inherit_port() also contests for the spinlock.
> 
> This patch proposes adding a second bind table, bhash2, that hashes by
> port and ip address. Searching the bhash2 table leads to significantly
> faster conflict resolution and less time holding the spinlock.
> 
> Signed-off-by: Joanne Koong <[email protected]>
> Reviewed-by: Eric Dumazet <[email protected]>

Acked-by: Kuniyuki Iwashima <[email protected]>

To maintainers:
lore and patchwork seem to miss this version...?

Thank you.
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.