Bug #68035 innodb claims: CPU does not support crc32 instructions
Submitted: 5 Jan 2013 18:04 Modified: 13 Mar 2013 19:16
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.6.9 OS:Linux
Assigned to: CPU Architecture:Any

[5 Jan 2013 18:04] Shane Bester
Description:
Starting up 5.6.9 on 64-bit linux or 64-bit windows claims the cpu is not supporting crc32 instructions when it is..

2013-01-05 19:49:57 1999 [Note] InnoDB: CPU does not support crc32 instructions

See attachment for CPU information.

How to repeat:
start mysql 5.6 on a cpu that supports sse4.2
[5 Jan 2013 18:06] MySQL Verification Team
cpuid and /proc/cpuinfo outputs

Attachment: bug68035_cpuinfo.txt (text/plain), 22.55 KiB.

[5 Jan 2013 18:48] MySQL Verification Team
Quick debugging shows that the message :

¨InnoDB: CPU does not support crc32 instructions¨

is printed out before ut_crc32_init is even called.
[5 Jan 2013 18:59] MySQL Verification Team
innobase_start_or_create_for_mysql() writes the message:

ib_logf(IB_LOG_LEVEL_INFO,
		"CPU %s crc32 instructions",
		ut_crc32_sse2_enabled ? "supports" : "does not support");

before it calls: srv_boot -> srv_init -> ut_crc32_init
[5 Jan 2013 20:31] MySQL Verification Team
cosmetic regression introduced here:
http://bazaar.launchpad.net/~mysql/mysql-server/5.6/revision/4319#storage/innobase/ut/ut0c...
[17 Feb 2013 8:37] MySQL Verification Team
bug #68408 is a duplicate
[22 Feb 2013 22:15] Mark Callaghan
Just lost 15 minutes debugging this. Should be easy to fix.
[23 Feb 2013 6:49] MySQL Verification Team
5.6.11 will be fixed
[13 Mar 2013 19:16] Bugs System
Added changelog entry to 5.6.11, 5.7.1.

On startup, InnoDB reported a message on 64-bit Linux and 64-bit Windows systems stating that the CPU does not support crc32 instructions. On Windows, InnoDB does not use crc32 instructions even if supported by the CPU. This fix revises the wording of the message and implements a check for availability of crc32 instructions.