Date: Sat, 17 Mar 2001 01:31:06 -0800 (PST) From: Peter Wemm <peter@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/alpha/include types.h src/sys/i386/include types.h src/sys/ia64/include types.h src/sys/powerpc/include types.h src/sys/kern vfs_cache.c src/sys/nfs nfs.h nfs_node.c src/sys/sys fnv_hash.h Message-ID: <200103170931.f2H9V7h77652@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
peter 2001/03/17 01:31:06 PST
Modified files:
sys/alpha/include types.h
sys/i386/include types.h
sys/ia64/include types.h
sys/powerpc/include types.h
sys/kern vfs_cache.c
sys/nfs nfs.h nfs_node.c
Added files:
sys/sys fnv_hash.h
Log:
Use a generic implementation of the Fowler/Noll/Vo hash (FNV hash).
Make the name cache hash as well as the nfsnode hash use it.
As a special tweak, create an unsigned version of register_t. This allows
us to use a special tweak for the 64 bit versions that significantly
speeds up the i386 version (ie: int64 XOR int64 is slower than int64
XOR int32).
The code layout is a little strange for the string function, but I was
able to get between 5 to 10% improvement over the original version I
started with. The layout affects gcc code generation choices and this way
was fastest on x86 and alpha.
Note that 'CPUTYPE=p3' etc makes a fair difference to this. It is
around 45% faster with -march=pentiumpro on a p6 cpu.
Revision Changes Path
1.14 +2 -2 src/sys/alpha/include/types.h
1.21 +2 -2 src/sys/i386/include/types.h
1.2 +2 -2 src/sys/ia64/include/types.h
1.2 +2 -1 src/sys/powerpc/include/types.h
1.53 +7 -14 src/sys/kern/vfs_cache.c
1.58 +1 -2 src/sys/nfs/nfs.h
1.44 +3 -29 src/sys/nfs/nfs_node.c
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103170931.f2H9V7h77652>
