crc32 table

Matthew Fleming matthew.fleming at isilon.com
Tue May 25 16:34:49 UTC 2010


The crc32 table in sys/libkern/crc32.c uses the polynomial 0xedb88320, which Wikipedia tells me is the standard for IEEE 802.3 and is used for MPEG-2 among other things.  I am curious why this polynomial was chosen for the one crc32 implementation currently supported by the kernel.  One reason I ask is that SSE 4.2 has a crc32 instruction, but it uses the Castagnoli polynomial of 0x82f63b78, which is used by iSCSI and SCTP.

Is there an interest in another crc32 implementation for the kernel which uses this polynomial and uses the SSE 4.2 instruction when available?  (This support would require kib's FPU patch).

Thanks,
matthew


More information about the freebsd-arch mailing list