Subject: Re: New hash algorithm - FNV - for use in the kernel
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Seth Kurtzberg <seth@cql.com>
List: tech-kern
Date: 11/27/2001 11:55:31
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Another $.02.  Actually, $0.06, for three comments.

I think the most important part of this discussion involves the comments by 
der Mouse and Darren Reed's (and others) discussion of optimizing for older 
vs. newer hardware, and the related subject of varying hardware performance 
for certain types of operations among different processors and architectures. 
I think it is a mistake to overgeneralize.  Is it a small performance penalty 
on some platforms with a large performance gain on others?  Is the 
functionality sufficiently modularized so that a user on older (or less 
capable) hardware can compensate without ugly hacking?  Is it practical (and 
maintainable) to include code for multiple hardware types and to let the 
kernel do some autodetection, or to use a compile time switch to select one 
or another method?

If I can risk a generalization, it is usually not difficult to isolate the 
hash function within a hashing algorithm.

There are indeed a multitude of NFS implementations with a very wide range of 
performance characteristics, as others have noted.  There are also two very 
different implementations of NFS by Sun.  Several years ago I remember a 
paper that compared the performance characteristics of Sun's older NFS 
implementation against the newer one; the newer implementation uses 
multithreading where the older implementation used multiple processes.  The 
multithreaded version had much better performance numbers while putting a 
much lower load on the machine for a given level of traffic.  There were 
differences in the nature and use of handles; I don't remember the specifics.

Another point is also correct (I believe it was from der Mouse); a lot 
depends on the nature of the NFS traffic, and NFS traffic patterns vary 
widely.

On Tuesday 27 November 2001 21:27, you wrote:
> In message <010601c177a4$3f741a80$0100a8c0@snowdrop>,
>
> "David Laight" writes:
> >> And what would that be?  Solaris?  NetBSD?  Tru64?
> >
> >This is NFS, all the implementations are clones of each other,
> >I'd guess that there is little difference between the implementations.
>
> Huh? Rick Macklem's implementation (the basis of the 4.3BSD-Reno NFS)
> is not exactly a clone of Sun's. Nor is Linux. Implemented from the
> specs, yes; and from talking to other implementations, yes; but
> *not* the same codebase.  For quite obvious reasons.
>
> (In fact, there are two linux implementations; a userspace version
> based on David Shand's unfsd, and a kernel version).  Not only do they
> put file-handle info in different places, they send packets
> on-the-wire in different order.
>
>
> I dont know where you got your information from, but perhaps you
> should consider finding a better source.

- -- 
Seth Kurtzberg
Machine Independent Software
Office:  (480) 661-1849
Fax: (480) 614-8909
email:  seth@cql.com
pager:  888-605-9296 or email 6059296@skytel.com

-----BEGIN PGP SIGNATURE-----
Version: PGP 6.5.8

iQA/AwUBPAPho3hkmRgYZUCaEQKkjgCgwCqriBL2dUvXK7m0kycTmEe+30UAn2+9
CeSviaUL8M6ca9NxKR+SMnn9
=CFuG
-----END PGP SIGNATURE-----