Enable hardware CRC32 under Valgrind
General
Escalation
General
Escalation
Description
Environment
None
Smart Checklist
Activity
Show:
Done
Details
Details
Assignee

Reporter

Upstream Bug URL
Time tracking
1h 40m logged
Fix versions
Priority
Smart Checklist
Open Smart Checklist
Smart Checklist

Open Smart Checklist
Created January 30, 2019 at 8:06 AM
Updated March 6, 2024 at 12:22 PM
Resolved January 31, 2019 at 1:41 PM
Copy of https://bugs.mysql.com/bug.php?id=94121:
[29 Jan 15:54] Laurynas Biveinis
Description:
Under Valgrind, hardware CRC32 checksums are disabled because:
static bool ut_crc32_check_cpu() {
...
/* Valgrind does not understand the CRC32 instructions:
vex amd64->IR: unhandled instruction bytes: 0xF2 0x48 0xF 0x38 0xF0 0xA
valgrind: Unrecognised instruction at address 0xad3db5.
...
This comes right from original implementation in 2011. But Valgrind 3.6.1, released also in 2011, added support for the instruction. Eight years later, it should be safe to remove, might save a cycle or two, also the patch only deletes code, which is always good. Quick test with new Valgrind shows that it works.
How to repeat:
See above
Suggested fix:
Remove #ifdef UNIV_DEBUG_VALGRIND from ut_crc32_check_cpu