Bug #79144 No hardware CRC32 implementation for AArch64
Submitted: 5 Nov 2015 19:37 Modified: 6 Nov 2015 8:58
Reporter: Alexey Kopytov Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.6, 5.7, 8.0 OS:Linux
Assigned to: CPU Architecture:ARM

[5 Nov 2015 19:37] Alexey Kopytov
Description:
Currently InnoDB only implements hardware support for CRC32 checksums
for the x86_64 architecture.

Some ARMv8 (AArch64) CPUs implement the CRC32 extension, so they can
also benefit from hardware acceleration in IO-intensive workloads. I'm
going to contibute a patch adding hardware CRC32 support for such CPUs.

How to repeat:
All hardware-specific code in storage/innobase/ut/ut0crc32.cc is under #ifdef __x86_64__, otherwise software implementation is used.
[6 Nov 2015 3:21] MySQL Verification Team
related: http://bugs.mysql.com/bug.php?id=68036
[6 Nov 2015 8:58] MySQL Verification Team
Hello Alexey,

Thank you for the report.

Thanks,
Umesh
[6 Nov 2015 14:05] Daniƫl van Eeden
Related:
Bug #74776 	InnoDB checksums (new or crc32) use too much CPU on POWER8
[9 Nov 2015 12:47] OCA Admin
Contribution submitted via Github - Bug #79144: No hardware CRC32 implementation for AArch64 
(*) Contribution by Alexey Kopytov (Github akopytov, mysql-server/pull/31#issuecomment-154434440): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: git_patch_49878396.txt (text/plain), 14.18 KiB.

[22 Dec 2015 5:17] Daniel Black
As the rework of code to add Power8 support and move crc32 into mysys to enable CRC32() and binlog usage of optmized function significantly conflicted with Alexey's patch I've merged Alexey's work in https://github.com/mysql/mysql-server/pull/41
[18 Jun 2016 21:28] Omer Barnir
Posted by developer:
 
Reported version value updated to reflect release name change from 5.8 to 8.0
[26 Aug 2017 13:36] OCA Admin
Contribution submitted via Github - Bug #79144: No hardware CRC32 implementation for AArch64 
(*) Contribution by Alexey Kopytov (Github akopytov, mysql-server/pull/170#issuecomment-324932711): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: git_patch_137657763.txt (text/plain), 12.69 KiB.

[25 May 2018 15:14] OCA Admin
Contribution submitted via Github - Bug #79144: No hardware CRC32 implementation for AArch64 
(*) Contribution by Alexey Kopytov (Github akopytov, mysql-server/pull/206#issuecomment-392049747): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: git_patch_190321927.txt (text/plain), 8.08 KiB.