summaryrefslogtreecommitdiffstats
path: root/net/core/request_sock.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2005-06-18 22:49:40 -0700
committerDavid S. Miller <davem@davemloft.net>2005-06-18 22:49:40 -0700
commite52c1f17e4ea8e61bd26eb25f1a184202693c2b9 (patch)
treed6094325ad30bf48f5296fd0faab85e8b9d76227 /net/core/request_sock.c
parent2ad69c55a282315e6119cf7fd744f26a925bdfd2 (diff)
[NET]: Move sysctl_max_syn_backlog into request_sock.c
This fixes the CONFIG_INET=n build failure noticed by Andrew Morton. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/request_sock.c')
-rw-r--r--net/core/request_sock.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/net/core/request_sock.c b/net/core/request_sock.c
index 78fd60a46bf..bb55675f068 100644
--- a/net/core/request_sock.c
+++ b/net/core/request_sock.c
@@ -18,6 +18,22 @@
#include <net/request_sock.h>
+/*
+ * Maximum number of SYN_RECV sockets in queue per LISTEN socket.
+ * One SYN_RECV socket costs about 80bytes on a 32bit machine.
+ * It would be better to replace it with a global counter for all sockets
+ * but then some measure against one socket starving all other sockets
+ * would be needed.
+ *
+ * It was 128 by default. Experiments with real servers show, that
+ * it is absolutely not enough even at 100conn/sec. 256 cures most
+ * of problems. This value is adjusted to 128 for very small machines
+ * (<=32Mb of memory) and to 1024 on normal or better ones (>=256Mb).
+ * Further increasing requires to change hash table size.
+ */
+int sysctl_max_syn_backlog = 256;
+EXPORT_SYMBOL(sysctl_max_syn_backlog);
+
int reqsk_queue_alloc(struct request_sock_queue *queue,
const int nr_table_entries)
{