[MDEV-9288] [PATCH] crc32 implement suboptimal on Power platform Created: 2015-12-15  Updated: 2015-12-16  Resolved: 2015-12-16

Status: Closed
Project: MariaDB Server
Component/s: Platform Power, Storage Engine - InnoDB, Storage Engine - XtraDB
Affects Version/s: 10.1.9
Fix Version/s: 10.1.10

Type: Bug Priority: Major
Reporter: Daniel Black Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: innodb, patch, upstream
Environment:

ppc64el


Sprint: 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



 Comments   
Comment by Jan Lindström (Inactive) [ 2015-12-16 ]

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 crc32

commit 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 platforms

Also removed surperflous stdio include.

Generated at Thu Feb 08 07:33:33 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.