From owner-cvs-src@FreeBSD.ORG Wed Dec 3 19:58:35 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3B31816A4CF for ; Wed, 3 Dec 2003 19:58:35 -0800 (PST) Received: from rootlabs.com (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id 8F7BE43FA3 for ; Wed, 3 Dec 2003 19:58:32 -0800 (PST) (envelope-from nate@rootlabs.com) Received: (qmail 22012 invoked by uid 1000); 4 Dec 2003 03:58:34 -0000 Date: Wed, 3 Dec 2003 19:58:34 -0800 (PST) From: Nate Lawson To: Don Lewis In-Reply-To: <20031203214943.4CDC516A565@hub.freebsd.org> Message-ID: <20031203195731.G21901@root.org> References: <20031203214943.4CDC516A565@hub.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern vfs_bio.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Dec 2003 03:58:35 -0000 On Wed, 3 Dec 2003, Don Lewis wrote: > Modified files: (Branch: RELENG_4) > sys/kern vfs_bio.c > Log: > The existing hash algorithm in bufhash() does not distribute entries > very well across buckets, especially in the case of cylinder group blocks > which are located at a sequence of locations that are a multiple of a large > power of two apart. In the case of large file systems, one or possibly > a few of the hash chains can get excessively long. Replace the existing > hash algorithm with a variation on the Fibonacci hash. > > Tested by: Ken Marx > > Revision Changes Path > 1.242.2.22 +37 -2 src/sys/kern/vfs_bio.c This is excellent. MTC? (Merge To Current) :) Also, whitespace nit: > + * Volume 3 / Sorting and Searching_ > + * > + * We reduce the argument to 32 bits before doing the hash to > + * avoid the need for a slow 64x64 multiply on 32 bit platforms. > + * -Nate