mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-09-28 19:20:30 +00:00
Merge branch 'net-inet-retire-port-only-listening_hash'
Martin KaFai Lau says: ==================== net: inet: Retire port only listening_hash This series is to retire the port only listening_hash. The listen sk is currently stored in two hash tables, listening_hash (hashed by port) and lhash2 (hashed by port and address). After commit0ee58dad5b("net: tcp6: prefer listeners bound to an address") and commitd9fbc7f643("net: tcp: prefer listeners bound to an address"), the TCP-SYN lookup fast path does not use listening_hash. The commit05c0b35709("tcp: seq_file: Replace listening_hash with lhash2") also moved the seq_file (/proc/net/tcp) iteration usage from listening_hash to lhash2. There are still a few listening_hash usages left. One of them is inet_reuseport_add_sock() which uses the listening_hash to search a listen sk during the listen() system call. This turns out to be very slow on use cases that listen on many different VIPs at a popular port (e.g. 443). [ On top of the slowness in adding to the tail in the IPv6 case ]. A latter patch has a selftest to demonstrate this case. This series takes this chance to move all remaining listening_hash usages to lhash2 and then retire listening_hash. ==================== Link: https://lore.kernel.org/r/20220512000546.188616-1-kafai@fb.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
b67fd3d9d9
12 changed files with 180 additions and 152 deletions
25
tools/testing/selftests/net/stress_reuseport_listen.sh
Executable file
25
tools/testing/selftests/net/stress_reuseport_listen.sh
Executable file
Loading…
Add table
Add a link
Reference in a new issue