Re: JFFS3 & performance

Jörn Engel
2004-12-21T14:38:36Z

On Thu, 16 December 2004 14:20:43 +0100, Joakim Tjernlund wrote:
>
> 2) Consider another checksum algorithm. Crc32 is very expensive
> and JFFS2 suffered severely in the early days. Now that crc32 is
> very optimized that problem is less visible, but crc32 is still
> expensive. Maybe an Adler32 checksum is good enough or a crc16?

Ok, after further thought, I actually like adler32. It uses two
checksums that individually are very weak. But the combination of the
two proves to be surprisingly strong. Running my hash-table test,
adler32 is on par with the best hash function I could come up with
(and faster than any hash function in the kernel).

The hash-table test is quite nice, as it penalizes weak hash
functions. Hash functions that run fast, but cause many collisions,
cause more time to be spent in search for a free slot. So only
functions that are fast _and_ strong do well. And adler32 does
extremely well.

So, unless you want to change the function to run backwards, I'd
propose to use adler32.

Jörn

--
/* Keep these two variables together */
int bar;