Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1.9
-
ppc64el
-
10.1.10
Description
IBM Power doesn't have SSE and the generic implementation generates poorly performing CRC32 code.
A good implementation from https://github.com/antonblanchard/crc32-vpmsum forms the basis for improvement.
running MySQL-5.7 unittest/gunit/innodb/ut0crc32-t
Before:
1..2
Using software crc32 implementation, CPU is little-endian
ok 1
Using software crc32 implementation, CPU is little-endian
normal CRC32: real 0.148006 sec
normal CRC32: user 0.148000 sec
normal CRC32: sys 0.000000 sec
big endian CRC32: real 0.144293 sec
big endian CRC32: user 0.144000 sec
big endian CRC32: sys 0.000000 sec
ok 2
After:
1..2
Using POWER8 crc32 implementation, CPU is little-endian
ok 1
Using POWER8 crc32 implementation, CPU is little-endian
normal CRC32: real 0.008097 sec
normal CRC32: user 0.008000 sec
normal CRC32: sys 0.000000 sec
big endian CRC32: real 0.147043 sec
big endian CRC32: user 0.144000 sec
big endian CRC32: sys 0.000000 sec
commit 953d5680a3c050273a8f29253f7386984679f92b
Merge: 1ac6640 60f09cd
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Wed Dec 16 09:34:24 2015 +0200
Merge pull request #133 from grooverdan/power-crc32
MDEV-9288: Use POWER8 accelerated crc32commit 60f09cd2b7913ae2f0807de03233d18a09876454
Author: Daniel Black <daniel.black@au.ibm.com>
Date: Wed Dec 16 11:12:05 2015 +1100
MDEV-9288: portablity for compling on non-power platformsAlso removed surperflous stdio include.