summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_socket2.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-03-20 04:39:32 +0000
committerjeff <jeff@FreeBSD.org>2002-03-20 04:39:32 +0000
commit803cb2a2ba1f8847bbb7ea2f1c36cfc14a645091 (patch)
treebbc92e42ed6a1f0d410188d2ce1e6e8d1096b4d7 /sys/kern/uipc_socket2.c
parent622e42f19462cd07c1cbcbc13be5f4003e6e8d1c (diff)
downloadFreeBSD-src-803cb2a2ba1f8847bbb7ea2f1c36cfc14a645091.zip
FreeBSD-src-803cb2a2ba1f8847bbb7ea2f1c36cfc14a645091.tar.gz
Backout part of my previous commit; I was wrong about vm_zone's handling of
limits on zones w/o objects.
Diffstat (limited to 'sys/kern/uipc_socket2.c')
-rw-r--r--sys/kern/uipc_socket2.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c
index 3145e3f..40907f9 100644
--- a/sys/kern/uipc_socket2.c
+++ b/sys/kern/uipc_socket2.c
@@ -55,6 +55,8 @@
#include <sys/aio.h> /* for aio_swake proto */
#include <sys/event.h>
+int maxsockets;
+
void (*aio_swake)(struct socket *, struct sockbuf *);
/*
@@ -1002,5 +1004,17 @@ SYSCTL_INT(_kern, KERN_DUMMY, dummy, CTLFLAG_RW, &dummy, 0, "");
SYSCTL_INT(_kern_ipc, KIPC_MAXSOCKBUF, maxsockbuf, CTLFLAG_RW,
&sb_max, 0, "Maximum socket buffer size");
+SYSCTL_INT(_kern_ipc, OID_AUTO, maxsockets, CTLFLAG_RD,
+ &maxsockets, 0, "Maximum number of sockets avaliable");
SYSCTL_INT(_kern_ipc, KIPC_SOCKBUF_WASTE, sockbuf_waste_factor, CTLFLAG_RW,
&sb_efficiency, 0, "");
+
+/*
+ * Initialise maxsockets
+ */
+static void init_maxsockets(void *ignored)
+{
+ TUNABLE_INT_FETCH("kern.ipc.maxsockets", &maxsockets);
+ maxsockets = imax(maxsockets, imax(maxfiles, nmbclusters));
+}
+SYSINIT(param, SI_SUB_TUNABLES, SI_ORDER_ANY, init_maxsockets, NULL);
OpenPOWER on IntegriCloud