Date: Thu, 8 Nov 2012 23:42:22 +0000 (UTC) From: Alfred Perlstein <alfred@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r242806 - in user/alfred/9-alfred/sys: i386/include kern Message-ID: <201211082342.qA8NgMEP049435@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211082342.qA8NgMEP049435>