From owner-svn-src-all@FreeBSD.ORG Sun Feb 26 00:59:01 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 02914106564A; Sun, 26 Feb 2012 00:59:01 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 7C73D8FC08; Sun, 26 Feb 2012 00:59:00 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ap4EAHSDSU+DaFvO/2dsb2JhbABBhSeud4FzAQEEASNWBRYUBAICDRkCWQaIFAULpWCRA4Evi28DIQICBQIKAQYEBwIGBxULBgMChEQBAjpQB4I6gRYEiE+MbpMM X-IronPort-AV: E=Sophos;i="4.73,483,1325480400"; d="scan'208";a="157913757" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 25 Feb 2012 19:58:59 -0500 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 44583B3FFC; Sat, 25 Feb 2012 19:58:59 -0500 (EST) Date: Sat, 25 Feb 2012 19:58:59 -0500 (EST) From: Rick Macklem To: Maxim Konovalov Message-ID: <788625604.124085.1330217939168.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <201202251206.q1PC6eaF016823@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.202] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - FF3.0 (Linux)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r232156 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Feb 2012 00:59:01 -0000 Maxim Konovalov wrote: > Author: maxim > Date: Sat Feb 25 12:06:40 2012 > New Revision: 232156 > URL: http://svn.freebsd.org/changeset/base/232156 > > Log: > o Reduce chances for integer overflow. > o More verbose sysctl description added. > > MFC after: 2 weeks > Sponsored by: Nginx, Inc. > > Modified: > head/sys/kern/vfs_cache.c > > Modified: head/sys/kern/vfs_cache.c > ============================================================================== > --- head/sys/kern/vfs_cache.c Sat Feb 25 11:07:32 2012 (r232155) > +++ head/sys/kern/vfs_cache.c Sat Feb 25 12:06:40 2012 (r232156) > @@ -369,7 +369,7 @@ sysctl_debug_hashstat_nchash(SYSCTL_HAND > maxlength = count; > } > n_nchash = nchash + 1; > - pct = (used * 100 * 100) / n_nchash; > + pct = (used * 100) / (n_nchash / 100); You might want to consider a sanity check to make sure n_nchash is >= 100, to avoid a "divide by zero". There was an NFS PR# a while back, where "desiredvnodes" was set very small and resulted in a "divide by zero" in the NFS code. Just a suggestion, rick > error = SYSCTL_OUT(req, &n_nchash, sizeof(n_nchash)); > if (error) > return (error); > @@ -386,7 +386,7 @@ sysctl_debug_hashstat_nchash(SYSCTL_HAND > } > SYSCTL_PROC(_debug_hashstat, OID_AUTO, nchash, CTLTYPE_INT|CTLFLAG_RD| > CTLFLAG_MPSAFE, 0, 0, sysctl_debug_hashstat_nchash, "I", > - "nchash chain lengths"); > + "nchash statistics (number of total/used buckets, maximum chain > length, usage percentage)"); > #endif > > /*