On Thu, Dec 01, 2011 at 12:20:53PM -0800, Joel Becker wrote: > On Thu, Dec 01, 2011 at 12:13:41PM -0800, Darrick J. Wong wrote: > > Hi all, > > > > This patchset (re)uses Bob Pearson's crc32 slice-by-8 code to stamp out a > > software crc32c implementation. It removes the crc32c implementation in > > crypto/ in favor of using the stamped-out one in lib/. There is also a change > > to Kconfig so that the kernel builder can pick an implementation best suited > > for the hardware. > > > > The motivation for this patchset is that I am working on adding full metadata > > checksumming to ext4. As far as performance impact of adding checksumming > > goes, I see nearly no change with a standard mail server ffsb simulation. On a > > test that involves only file creation and deletion and extent tree writes, I > > see a drop of about 50 pcercent with the current kernel crc32c implementation; > > this improves to a drop of about 20 percent with the enclosed crc32c code. > > > > When metadata is usually a small fraction of total IO, this new implementation > > doesn't help much because metadata is usually a small fraction of total IO. > > However, when we are doing IO that is almost all metadata (such as rm -rf'ing a > > tree), then this patch speeds up the operation substantially. > > > > Incidentally, given that iscsi, sctp, and btrfs also use crc32c, this patchset > > should improve their speed as well. I have not yet quantified that, however. > > I thought they usually used the SSE instruction for crc32 or > equivalent. They seem to call crc32c(), which is in crypto/crc32c. If you're interested in hardware accelerated crc32c on Intel, it is still the case that the wrapper for that can be loaded via crc32c-intel. --D > > Joel > > -- > > "I almost ran over an angel > He had a nice big fat cigar. > 'In a sense,' he said, 'You're alone here > So if you jump, you'd best jump far.'" > > http://www.jlbec.org/ > jlbec@xxxxxxxxxxxx > -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html