[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171201205232.3012584-1-kafai@fb.com>
Date: Fri, 1 Dec 2017 12:52:28 -0800
From: Martin KaFai Lau <kafai@...com>
To: netdev <netdev@...r.kernel.org>
CC: "David S . Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Kernel Team <kernel-team@...com>
Subject: [PATCH v2 net-next 0/4] tcp: Add a 2nd listener hashtable (port+addr)
This patch set adds a 2nd listener hashtable. It is to resolve
the performance issue when a process is listening at many IP
addresses with the same port (e.g. [IP1]:443, [IP2]:443... [IPN]:443)
v2:
- Move the new lhash2 and lhash2_mask before the existing
listening_hash to avoid adding another cacheline
to inet_hashinfo (Suggested by Eric Dumazet, Thanks!)
- I take this chance to plug an existing 4 bytes hole while
adding 'unsigned int lhash2_mask'.
- Add some comments about lhash2 in inet_hashtables.h
Martin KaFai Lau (4):
inet: Add a count to struct inet_listen_hashbucket
udp: Move udp[46]_portaddr_hash() to net/ip[v6].h
inet: Add a 2nd listener hashtable (port+addr)
tcp: Enable 2nd listener hashtable in TCP
include/net/inet_connection_sock.h | 2 +
include/net/inet_hashtables.h | 29 +++++--
include/net/ip.h | 9 ++
include/net/ipv6.h | 17 ++++
net/ipv4/inet_hashtables.c | 173 +++++++++++++++++++++++++++++++++++--
net/ipv4/tcp.c | 3 +
net/ipv4/udp.c | 22 ++---
net/ipv6/inet6_hashtables.c | 66 ++++++++++++++
net/ipv6/udp.c | 32 ++-----
9 files changed, 301 insertions(+), 52 deletions(-)
--
2.9.5
Powered by blists - more mailing lists