[Twg] T10 End-to-End Data Integrity HLD

Andreas Dilger adilger at whamcloud.com
Thu Apr 19 17:16:46 UTC 2012


On 2012-04-18, at 3:55 PM, Andreas Dilger wrote:
> On 2012-04-17, at 11:02 AM, Nathan Rutman wrote:
>> That's a question about debugging really.  Just as today many sites run without checksums at all due to server CPU loading, it makes sense to me to make intermediate verifications optional.
> 
> Based on the data in LU-1201, I think with Nehalem CPUs and multi-threaded ptlrpcd the checksum overhead will become a non-issue, and people will happily leave it enabled all the time.  The unfortunate thing is that the CRC16 used by T10-DIF has such poor software performance that I agree there is no option but to leave the verification to the hardware.
> 
> See the table in https://ext4.wiki.kernel.org/articles/e/x/t/Ext4_Metadata_Checksums_4d24.html
> 
> for a useful recent comparison of checksum algorithm performance.  It would be interesting to see if there was some way to improve the kernel crc16-t10 performance through loop unrolling or table lookups, given that significant performance gains were seen for crc32c-kern to the updated crc32c-by8 implementation.

Just reposting as requested by discussion on the call today.  The summary is that crc32c is fast in both hardware (4.4GB/s) and software (1.6GB/s), while crc16-t10dif is very slow in software (300MB/s).

There is a generic CRC instruction in newer Intel CPUs that might be usable to improve the crc16-t10dif performance.  Nathan mentioned that someone at Xyratex can take a look at whether this could be implemented efficiently in hardware (via an asm wrapper in the short term, via cryptoapi in the long term).

Cheers, Andreas
--
Andreas Dilger                       Whamcloud, Inc.
Principal Lustre Engineer            http://www.whamcloud.com/





More information about the Twg mailing list