• Daniel Axtens's avatar
    Use POWER8 accelerated crc32 · 2538c7cf
    Daniel Axtens authored
     - Make accelerated checksum available to InnoDB and XtraDB.
     - Fall back to slice-by-eight if not available. The mode used is printed on startup.
     - Will only build on POWER systems at the moment until CMakeLists are modified
       to only add the crc32_power8/ files when building on POWER.
    
    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
    ok 2
    
    Author CRC32 ASM code: Anton Blanchard <anton@au.ibm.com>
    ref: https://github.com/antonblanchard/crc32-vpmsumSigned-off-by: default avatarDaniel Black <daniel.black@au.ibm.com>
    2538c7cf
crc32.S 15.4 KB