The existing hash algorithm in bufhash() does not distribute entries
authorDavid Rhodus <drhodus@dragonflybsd.org>
Wed, 31 Mar 2004 15:32:53 +0000 (15:32 +0000)
committerDavid Rhodus <drhodus@dragonflybsd.org>
Wed, 31 Mar 2004 15:32:53 +0000 (15:32 +0000)
commit517dc5dc389c762d8047080e10401cb94cc29801
tree2a753b86dbda64ccfd24a0e20748b2d380a2b913
parente61cbecc9c8e3f46f6607da5d44af8f58092a080
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.

Merged from FreeBSD
sys/kern/vfs_bio.c