[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250305034550.879255-1-edumazet@google.com>
Date: Wed, 5 Mar 2025 03:45:48 +0000
From: Eric Dumazet <edumazet@...gle.com>
To: "David S . Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Cc: Neal Cardwell <ncardwell@...gle.com>, Kuniyuki Iwashima <kuniyu@...zon.com>,
Jason Xing <kernelxing@...cent.com>, Simon Horman <horms@...nel.org>, netdev@...r.kernel.org,
eric.dumazet@...il.com, Eric Dumazet <edumazet@...gle.com>
Subject: [PATCH net-next 0/2] tcp: even faster connect() under stress
This is a followup on the prior series, "tcp: scale connect() under pressure"
Now spinlocks are no longer in the picture, we see a very high cost
of the inet6_ehashfn() function.
In this series (of 2), I change how lport contributes to inet6_ehashfn()
to ensure better cache locality and call inet6_ehashfn()
only once per connect() system call.
This brings an additional 229 % increase of performance
for "neper/tcp_crr -6 -T 200 -F 30000" stress test,
while greatly improving latency metrics.
Before:
latency_min=0.014131929
latency_max=17.895073144
latency_mean=0.505675853
latency_stddev=2.125164772
num_samples=307884
throughput=139866.80
After:
latency_min=0.003041375
latency_max=7.056589232
latency_mean=0.141075048
latency_stddev=0.526900516
num_samples=312996
throughput=320677.21
Eric Dumazet (2):
inet: change lport contribution to inet_ehashfn() and inet6_ehashfn()
inet: call inet6_ehashfn() once from inet6_hash_connect()
include/net/inet_hashtables.h | 4 +++-
include/net/ip.h | 2 +-
net/ipv4/inet_hashtables.c | 30 ++++++++++++++++++++----------
net/ipv6/inet6_hashtables.c | 19 +++++++++++++------
4 files changed, 37 insertions(+), 18 deletions(-)
--
2.48.1.711.g2feabab25a-goog
Powered by blists - more mailing lists