From owner-svn-src-user@FreeBSD.ORG Thu Nov 8 23:42:23 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 49AFB392; Thu, 8 Nov 2012 23:42:23 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 133428FC08; Thu, 8 Nov 2012 23:42:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id qA8NgMhk049437; Thu, 8 Nov 2012 23:42:22 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id qA8NgMEP049435; Thu, 8 Nov 2012 23:42:22 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201211082342.qA8NgMEP049435@svn.freebsd.org> From: Alfred Perlstein Date: Thu, 8 Nov 2012 23:42:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r242806 - in user/alfred/9-alfred/sys: i386/include kern X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Nov 2012 23:42:23 -0000 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)