Bug #76651 korr routines are sub-optimal for ppc64el
Submitted: 10 Apr 2015 8:28
Reporter: Stewart Smith (OCA) Email Updates:
Status: Open Impact on me:
Category:MySQL Server Severity:S5 (Performance)
Version:5.7.7 OS:Linux
Assigned to: CPU Architecture:Any
Tags: power, PowerPC

[10 Apr 2015 8:28] Stewart Smith
Due to the wonderful (err... awful) heritage of the uint8korr() functions and similar, nobody has actually sat down and properly solved the problem.

Instead, we get piecemeal assumptions of byte order based on CPU architecture rather than using a configure check.

So, there is byte_order_generic_x86.h which does optimal things for x86.

Standard MySQL 5.7.7 running sysbench read-only workload will spend a lot of time in uint8korr() in skip_trailing_spaces.

How to repeat:
Run sysbench read-only on ppc64el (e.g. Ubuntu on POWER8).

Suggested fix:
I should shortly have a patch that fixes the problem.

The *bigger* job, of going and ripping out the antiquated weirdness of having uint8korr() functions rather than cpu_to_be64() style functions like everybody else is an exercise left to someone else (I don't want to spend the time on that patch if it's not going to get applied quickly, as it'd undoubtedly need updating... if the MySQL *development* git tree was public, I probably would).