* [PATCH] Make INET_LHTABLE_SIZE a compile-time tunable
@ 2011-01-14 21:48 Bill Sommerfeld
2011-01-31 21:52 ` Bill Sommerfeld
0 siblings, 1 reply; 4+ messages in thread
From: Bill Sommerfeld @ 2011-01-14 21:48 UTC (permalink / raw)
To: netdev; +Cc: David S. Miller, Tom Herbert, Bill Sommerfeld
INET_LHTABLE_SIZE has been fixed at 32 for a long time. It should be
tunable as larger systems may be running many more than 32 listeners.
Since the exising code depends on the hash table size
being a power of two, use a shift value as the tunable and
compute the hash table size from the shift value.
Signed-off-by: Bill Sommerfeld <wsommerfeld@google.com>
---
Background: We've observed that many of our machines are now running
with well in excess of 32 TCP listener sockets open. As the number of
cpu cores per system increases we expect this to grow further.
In general hash tables should be sized to keep hash chains short, and
32 is not enough for this on some of our machines.
The help text was inspired by the help text for LOG_BUF_SHIFT in
init/Kconfig
include/net/inet_hashtables.h | 2 +-
net/ipv4/Kconfig | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h
index e9c2ed8..7253fce 100644
--- a/include/net/inet_hashtables.h
+++ b/include/net/inet_hashtables.h
@@ -113,7 +113,7 @@ struct inet_listen_hashbucket {
};
/* This is for listening sockets, thus all sockets which possess wildcards. */
-#define INET_LHTABLE_SIZE 32 /* Yes, really, this is all you need. */
+#define INET_LHTABLE_SIZE (1U << (CONFIG_INET_LHTABLE_SHIFT))
struct inet_hashinfo {
/* This is for sockets with full identity only. Sockets here will
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 9e95d7f..a92954e 100644
--- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig
@@ -440,6 +440,20 @@ config INET_TCP_DIAG
depends on INET_DIAG
def_tristate INET_DIAG
+config INET_LHTABLE_SHIFT
+ int "Number of TCP port listener table buckets (5 => 32, 8 => 256)"
+ default 5
+ range 0 12
+ help
+ Select number of buckets in TCP listener hash as a power of 2
+ 32 is probably enough unless you run a lot of different servers
+ Examples:
+ 4 => 16
+ 5 => 32 (default)
+ 6 => 64
+ 7 => 128
+ 8 => 256
+
menuconfig TCP_CONG_ADVANCED
bool "TCP: advanced congestion control"
---help---
--
1.7.3.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] Make INET_LHTABLE_SIZE a compile-time tunable
2011-01-14 21:48 [PATCH] Make INET_LHTABLE_SIZE a compile-time tunable Bill Sommerfeld
@ 2011-01-31 21:52 ` Bill Sommerfeld
2011-01-31 22:05 ` David Miller
0 siblings, 1 reply; 4+ messages in thread
From: Bill Sommerfeld @ 2011-01-31 21:52 UTC (permalink / raw)
To: netdev; +Cc: David S. Miller, Tom Herbert, Bill Sommerfeld
On Fri, Jan 14, 2011 at 13:48, I wrote:
> INET_LHTABLE_SIZE has been fixed at 32 for a long time. It should be
> tunable as larger systems may be running many more than 32 listeners.
I haven't seen any responses to this patch submission. Can someone
take a look? Thanks.
- Bill
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Make INET_LHTABLE_SIZE a compile-time tunable
2011-01-31 21:52 ` Bill Sommerfeld
@ 2011-01-31 22:05 ` David Miller
2011-02-01 2:04 ` Bill Sommerfeld
0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2011-01-31 22:05 UTC (permalink / raw)
To: wsommerfeld; +Cc: netdev, therbert
From: Bill Sommerfeld <wsommerfeld@google.com>
Date: Mon, 31 Jan 2011 13:52:03 -0800
> On Fri, Jan 14, 2011 at 13:48, I wrote:
>> INET_LHTABLE_SIZE has been fixed at 32 for a long time. It should be
>> tunable as larger systems may be running many more than 32 listeners.
>
> I haven't seen any responses to this patch submission. Can someone
> take a look? Thanks.
It should be dynamically sized. Compile time configuration knobs
generally stick.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Make INET_LHTABLE_SIZE a compile-time tunable
2011-01-31 22:05 ` David Miller
@ 2011-02-01 2:04 ` Bill Sommerfeld
0 siblings, 0 replies; 4+ messages in thread
From: Bill Sommerfeld @ 2011-02-01 2:04 UTC (permalink / raw)
To: David S. Miller; +Cc: netdev, therbert
On Mon, Jan 31, 2011 at 14:05, David Miller <davem@davemloft.net> wrote:
> From: Bill Sommerfeld <wsommerfeld@google.com>
>> I haven't seen any responses to this patch submission. Can someone
>> take a look? Thanks.
> It should be dynamically sized. Compile time configuration knobs
> generally stick.
I'll work on that. Consider this patch withdrawn until then.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-02-01 2:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-14 21:48 [PATCH] Make INET_LHTABLE_SIZE a compile-time tunable Bill Sommerfeld
2011-01-31 21:52 ` Bill Sommerfeld
2011-01-31 22:05 ` David Miller
2011-02-01 2:04 ` Bill Sommerfeld
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).