Re: [rfc] larger batches for crc32c
From: Dave Chinner <david@fromorbit.com>
Date: 2016-10-27 23:18:33
On Fri, Oct 28, 2016 at 08:42:44AM +1100, Dave Chinner wrote:
On Fri, Oct 28, 2016 at 03:17:47AM +1100, Nicholas Piggin wrote:quoted
Hi guys, We're seeing crc32c_le show up in xfs log checksumming on a MySQL benchmark on powerpc. I could reproduce similar overheads with dbench as well. 1.11% mysqld [kernel.vmlinux] [k] __crc32c_le | ---__crc32c_le | --1.11%--chksum_update | --1.11%--crypto_shash_update crc32c xlog_cksum xlog_sync _xfs_log_force_lsn xfs_file_fsync vfs_fsync_range do_fsync sys_fsync system_call 0x17738 0x17704 os_file_flush_func fil_flush2-3% is the typical CRC CPU overhead I see on metadata/log intensive workloads on x86-64, so this doesn't seem unreasonable.
FWIW, I just noticed that qemu is now passing through hardware CRC feature bits to the guest, so it's now using the hardware accelerated intel module for CRCs. That "2-3%" I mentioned I used to see from __crc32c_le is now: 0.35% [kernel] [k] crc32c_pcl_intel_update And there's about 250MB/s of log+metadata IO being CRC'd in this workload, so I don't think that the way XFS splits the CRCs into multiple segments is really all that significant... Cheers, Dave. -- Dave Chinner david@fromorbit.com