svn commit: r242806 - in user/alfred/9-alfred/sys: i386/include kern
Alfred Perlstein
alfred at FreeBSD.org
Thu Nov 8 23:42:23 UTC 2012
Author: alfred
Date: Thu Nov 8 23:42:22 2012
New Revision: 242806
URL: http://svnweb.freebsd.org/changeset/base/242806
Log:
Go back to basing nmbclusters on maxusers, however allow
platform override of both limit and function.
Modified:
user/alfred/9-alfred/sys/i386/include/vmparam.h
user/alfred/9-alfred/sys/kern/kern_mbuf.c
Modified: user/alfred/9-alfred/sys/i386/include/vmparam.h
==============================================================================
--- user/alfred/9-alfred/sys/i386/include/vmparam.h Thu Nov 8 23:24:02 2012 (r242805)
+++ user/alfred/9-alfred/sys/i386/include/vmparam.h Thu Nov 8 23:42:22 2012 (r242806)
@@ -206,10 +206,9 @@
#define VM_MAX_AUTOTUNE_MAXUSERS 384
#endif
-#ifndef MAX_AUTOTUNE_NMBCLUSTERS
+#ifndef VM_MAX_AUTOTUNE_NMBCLUSTERS
/* old maxusers max value. */
-#define MAX_AUTOTUNE_NMBCLUSTERS (1024 + 384 * 64)
+#define VM_MAX_AUTOTUNE_NMBCLUSTERS (1024 + VM_MAX_AUTOTUNE_MAXUSERS * 64)
#endif
-
#endif /* _MACHINE_VMPARAM_H_ */
Modified: user/alfred/9-alfred/sys/kern/kern_mbuf.c
==============================================================================
--- user/alfred/9-alfred/sys/kern/kern_mbuf.c Thu Nov 8 23:24:02 2012 (r242805)
+++ user/alfred/9-alfred/sys/kern/kern_mbuf.c Thu Nov 8 23:42:22 2012 (r242806)
@@ -102,30 +102,6 @@ int nmbjumbo9; /* limits number of 9k
int nmbjumbo16; /* limits number of 16k jumbo clusters */
struct mbstat mbstat;
-static int
-nmbclusters_from_physpages(void)
-{
- long factor;
- long rv;
-
- factor = physmem / (2 * 1024 * 1024 / PAGE_SIZE);
- if (factor < 32)
- factor = 32;
- /* after 384, switch scale to 1/4 */
- if (factor > 384)
- factor = 384 + (factor - 384) / 4;
- rv = 1024 + factor * 64;
- /*
- * allow a platform specific override to prevent exhausting
- * kernel memory on large memory + small address space machines.
- */
-#ifdef MAX_AUTOTUNE_NMBCLUSTERS
- if (rv > MAX_AUTOTUNE_NMBCLUSTERS)
- rv = MAX_AUTOTUNE_NMBCLUSTERS
-#endif
- return (rv);
-}
-
/*
* tunable_mbinit() has to be run before init_maxsockets() thus
* the SYSINIT order below is SI_ORDER_MIDDLE while init_maxsockets()
@@ -137,8 +113,17 @@ tunable_mbinit(void *dummy)
/* This has to be done before VM init. */
TUNABLE_INT_FETCH("kern.ipc.nmbclusters", &nmbclusters);
- if (nmbclusters == 0)
- nmbclusters = nmbclusters_from_physpages();
+ if (nmbclusters == 0) {
+#ifdef VM_AUTOTUNE_NMBCLUSTERS
+ nmbclusters = VM_AUTOTUNE_NMBCLUSTERS;
+#else
+ nmbclusters = 1024 + maxusers * 64;
+#endif
+#ifdef VM_MAX_AUTOTUNE_NMBCLUSTERS
+ if (rv > VM_MAX_AUTOTUNE_NMBCLUSTERS)
+ rv = VM_MAX_AUTOTUNE_NMBCLUSTERS;
+#endif
+ }
TUNABLE_INT_FETCH("kern.ipc.nmbjumbop", &nmbjumbop);
if (nmbjumbop == 0)
More information about the svn-src-user
mailing list