Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug #79747: CRC32: add aarch64 and power8, use optimized for binlogs and CRC32() #41

Closed
wants to merge 8 commits into from
Closed

Conversation

grooverdan
Copy link

moves optimized crc32 code from storage/innobase

solves the following bugs:
bug #79144 No hardware CRC32 implementation for AArch64 - rework of @akopytov's #31
bug#79325 Use hardware optimized crc32 for binary log checksums
bug #79155 Use hardware optimized crc32 for CRC32() function.
bug #74776 InnoDB checksums (new or crc32) use too much CPU on POWER8

grooverdan and others added 4 commits December 22, 2015 11:03
Prepares for common use of implementation of:
Bug#79155 optimized crc32 for CRC32() function
Bug#79325 optimized crc32 for binary log checksums
Facilitates expansion of description for other optmised crc32 implementations:
Bug#74776    InnoDB checksums (new or crc32) use too much CPU on POWER8
Bug#79144    No hardware CRC32 implementation for AArch64
ref: https://github.com/antonblanchard/crc32-vpmsum

Bug#79144: No hardware CRC32 implementation for AArch64#74776 	InnoDB checksums (new or crc32) use too much CPU on POWER8
This is only used on Linux where we detect (at runtime) that ARCH_2_07
is available (which has the necessary hardware instructions).
Bug#74776 	InnoDB checksums (new or crc32) use too much CPU on POWER8
@mysql-oca-bot
Copy link

Hi, thank you for your contribution. Please confirm this code is submitted under the terms of the OCA (Oracle's Contribution Agreement) you have previously signed by cutting and pasting the following text as a comment:
"I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it."
Thanks

@grooverdan
Copy link
Author

I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

To facilitate:
Bug#79155 optimized crc32 for CRC32() function
Bug#79325 optimized crc32 for binary log checksums
This preserves the same api as zlib's crc32

*_ex(tended) crc32 functions added to handle incremental crc32 calculations.

Static initializer Log_event::_init LogEvent::_initializer; added to ensure
client programs that use LogEvent have crc32 initialized.

mysqlbinlog and mysqld's binlog code now uses optimized crc32 code rather than
zlib's.

Solves:
Bug#79325 optimized crc32 for binary log checksums
Solves:
Bug#79155 optimized crc32 for CRC32() function
@mysql-admin
Copy link

@grooverdan - Thanks for the contribution.

The last commit (Add support for autodetection and usage of hardware CRC32 instructions) is by @akopytov who is not covered by your OCA. As such we cannot accept the contribution with it

Please remove @akopytov's commit it from the pull request.

Thanks
==Omer

@grooverdan
Copy link
Author

@mysql-admin done. grooverdan@af62807 is still around for when merging #31 is need (wasn't that complicated).

@mysql-oca-bot
Copy link

Hi, thank you for your contribution. Your code has been assigned to an internal queue. Please follow
bug http://bugs.mysql.com/bug.php?id=79747 for updates.
Thanks

@grooverdan grooverdan changed the title CRC32: add aarch64 and power8, use optimized for binlogs and CRC32() Bug #79747: CRC32: add aarch64 and power8, use optimized for binlogs and CRC32() Dec 23, 2015
vmg pushed a commit to planetscale/mysql-server that referenced this pull request Nov 21, 2023
…ble-check

Fix checking the wrong variable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants