Bug #78953 innodb_numa_interleave is not available in generic linux .tar.gz
Submitted: 24 Oct 2015 12:33
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Compiling Severity:S4 (Feature request)
Version:5.6.27 OS:Any
Assigned to: CPU Architecture:Any

[24 Oct 2015 12:33] Shane Bester
Description:
I want to try out innodb_numa_interleave but do not want to build mysqld myself or use RPM.

mysql> show variables like 'innodb_numa_interleave';
Empty set (0.00 sec)

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.27    |
+-----------+
1 row in set (0.00 sec)

How to repeat:
http://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_numa_interleav...

Suggested fix:
Can numa functions be built into existing binary but just disabled if OS doesn't support it?
[6 Jan 2016 14:31] Tim Smith
It is also reproducible with MySQL 5.6.28 on Windows via the MSI installer.

 mysql> show global variables like '%version%'; 
 +-------------------------+------------------------------+ 
 | Variable_name | Value | 
 +-------------------------+------------------------------+ 
 | innodb_version | 5.6.28 | 
 | protocol_version | 10 | 
 | slave_type_conversions | | 
 | version | 5.6.28-log | 
 | version_comment | MySQL Community Server (GPL) | 
 | version_compile_machine | x86_64 | 
 | version_compile_os | Win64 | 
 +-------------------------+------------------------------+ 
 7 rows in set (0.00 sec) 

 mysql> show global variables like '%numa%'; 
 Empty set (0.00 sec)
[15 Jun 2016 18:14] Ivan Groenewold
This was fixed in the Percona 5.7.12 release. To fix in the 5.6 branch the following changes are needed:

diff --git a/config.h.cmake b/config.h.cmake
index 5b7445f..03de450 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -663,5 +663,6 @@
 
 #cmakedefine CPU_LEVEL1_DCACHE_LINESIZE @CPU_LEVEL1_DCACHE_LINESIZE@
 #cmakedefine HAVE_LIBNUMA 1
+#cmakedefine WITH_NUMA 1
 
 #endif
diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc
index 6f20691..6096d0c 100644
--- a/storage/innobase/buf/buf0buf.cc
+++ b/storage/innobase/buf/buf0buf.cc
@@ -53,10 +53,10 @@ Created 11/5/1995 Heikki Tuuri
 #include "page0zip.h"
 #include "srv0mon.h"
 #include "buf0checksum.h"
-#ifdef HAVE_LIBNUMA
+#ifdef HAVE_LIBNUMA && defined(WITH_NUMA) && !defined(UNIV_INNOCHECKSUM)
 #include <numa.h>
 #include <numaif.h>
-#endif // HAVE_LIBNUMA
+#endif // HAVE_LIBNUMA && WITH_NUMA
 
 /*
                IMPLEMENTATION OF THE BUFFER POOL