Gentoo Archives: gentoo-commits

From: Brian Evans <grknight@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/mysql-extras:master commit in: /
Date: Sun, 04 Nov 2018 22:52:23
Message-Id: 1541371895.239f0e8dd9c003252a3c627d86c06744918bd965.grknight@gentoo
1 commit: 239f0e8dd9c003252a3c627d86c06744918bd965
2 Author: Brian Evans <grknight <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 4 22:51:35 2018 +0000
4 Commit: Brian Evans <grknight <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 4 22:51:35 2018 +0000
6 URL: https://gitweb.gentoo.org/proj/mysql-extras.git/commit/?id=239f0e8d
7
8 Respin numa patch for mariadb 10.1.37
9
10 Signed-off-by: Brian Evans <grknight <AT> gentoo.org>
11
12 20029_all_mariadb-10.1.37-enable-numa.patch | 204 ++++++++++++++++++++++++++++
13 1 file changed, 204 insertions(+)
14
15 diff --git a/20029_all_mariadb-10.1.37-enable-numa.patch b/20029_all_mariadb-10.1.37-enable-numa.patch
16 new file mode 100644
17 index 0000000..a924534
18 --- /dev/null
19 +++ b/20029_all_mariadb-10.1.37-enable-numa.patch
20 @@ -0,0 +1,204 @@
21 +Backport MariaDB 10.2 support into 10.1
22 +
23 +diff --git a/cmake/numa.cmake b/cmake/numa.cmake
24 +new file mode 100644
25 +index 000000000000..d5234a5ef4f6
26 +--- /dev/null
27 ++++ b/cmake/numa.cmake
28 +@@ -0,0 +1,43 @@
29 ++MACRO (MYSQL_CHECK_NUMA)
30 ++
31 ++ IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
32 ++ CHECK_INCLUDE_FILES(numa.h HAVE_NUMA_H)
33 ++ CHECK_INCLUDE_FILES(numaif.h HAVE_NUMAIF_H)
34 ++
35 ++ IF(HAVE_NUMA_H AND HAVE_NUMAIF_H)
36 ++ OPTION(WITH_NUMA "Explicitly set NUMA memory allocation policy" ON)
37 ++ ELSE()
38 ++ OPTION(WITH_NUMA "Explicitly set NUMA memory allocation policy" OFF)
39 ++ ENDIF()
40 ++
41 ++ IF(WITH_NUMA AND HAVE_NUMA_H AND HAVE_NUMAIF_H)
42 ++ SET(SAVE_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
43 ++ SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} numa)
44 ++ CHECK_C_SOURCE_COMPILES(
45 ++ "
46 ++ #include <numa.h>
47 ++ #include <numaif.h>
48 ++ int main()
49 ++ {
50 ++ struct bitmask *all_nodes= numa_all_nodes_ptr;
51 ++ set_mempolicy(MPOL_DEFAULT, 0, 0);
52 ++ return all_nodes != NULL;
53 ++ }"
54 ++ HAVE_LIBNUMA)
55 ++ SET(CMAKE_REQUIRED_LIBRARIES ${SAVE_CMAKE_REQUIRED_LIBRARIES})
56 ++ IF(HAVE_LIBNUMA)
57 ++ ADD_DEFINITIONS(-DHAVE_LIBNUMA=1)
58 ++ SET(NUMA_LIBRARY "numa")
59 ++ ENDIF()
60 ++ ENDIF()
61 ++
62 ++ IF(WITH_NUMA AND NOT HAVE_LIBNUMA)
63 ++ # Forget it in cache, abort the build.
64 ++ UNSET(WITH_NUMA CACHE)
65 ++ UNSET(NUMA_LIBRARY CACHE)
66 ++ MESSAGE(FATAL_ERROR "Could not find numa headers/libraries")
67 ++ ENDIF()
68 ++ ENDIF()
69 ++
70 ++ENDMACRO()
71 ++
72 +diff --git a/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic-master.opt b/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic-master.opt
73 +new file mode 100644
74 +index 000000000000..c1c2bb26b8ac
75 +--- /dev/null
76 ++++ b/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic-master.opt
77 +@@ -0,0 +1,1 @@
78 ++--loose-innodb_numa_interleave=1
79 +diff --git a/storage/innobase/CMakeLists.txt b/storage/innobase/CMakeLists.txt
80 +index 7e667d5ebb29..c80ef6f09937 100644
81 +--- a/storage/innobase/CMakeLists.txt
82 ++++ b/storage/innobase/CMakeLists.txt
83 +@@ -23,12 +23,14 @@ INCLUDE(lzo)
84 + INCLUDE(lzma)
85 + INCLUDE(bzip2)
86 + INCLUDE(snappy)
87 ++INCLUDE(numa)
88 +
89 + MYSQL_CHECK_LZ4()
90 + MYSQL_CHECK_LZO()
91 + MYSQL_CHECK_LZMA()
92 + MYSQL_CHECK_BZIP2()
93 + MYSQL_CHECK_SNAPPY()
94 ++MYSQL_CHECK_NUMA()
95 +
96 + IF(CMAKE_CROSSCOMPILING)
97 + # Use CHECK_C_SOURCE_COMPILES instead of CHECK_C_SOURCE_RUNS when
98 +@@ -63,5 +63,2 @@
99 + ENDIF()
100 + ADD_DEFINITIONS("-DUNIV_LINUX -D_GNU_SOURCE=1")
101 +- IF(HAVE_LIBNUMA)
102 +- LINK_LIBRARIES(numa)
103 +- ENDIF()
104 +@@ -517,6 +517,10 @@
105 + MYSQL_ADD_PLUGIN(innobase ${INNOBASE_SOURCES} STORAGE_ENGINE
106 + MODULE_ONLY
107 + MODULE_OUTPUT_NAME ha_innodb
108 +- LINK_LIBRARIES ${ZLIB_LIBRARY} ${LIBSYSTEMD} ${LINKER_SCRIPT})
109 ++ LINK_LIBRARIES
110 ++ ${ZLIB_LIBRARY}
111 ++ ${NUMA_LIBRARY}
112 ++ ${LIBSYSTEMD}
113 ++ ${LINKER_SCRIPT})
114 +
115 + ADD_DEPENDENCIES(innobase GenError)
116 +diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt
117 +index 7d2a3fad56dc..51e24b3cd8a2 100644
118 +--- a/storage/xtradb/CMakeLists.txt
119 ++++ b/storage/xtradb/CMakeLists.txt
120 +@@ -23,12 +23,14 @@ INCLUDE(lzo)
121 + INCLUDE(lzma)
122 + INCLUDE(bzip2)
123 + INCLUDE(snappy)
124 ++INCLUDE(numa)
125 +
126 + MYSQL_CHECK_LZ4()
127 + MYSQL_CHECK_LZO()
128 + MYSQL_CHECK_LZMA()
129 + MYSQL_CHECK_BZIP2()
130 + MYSQL_CHECK_SNAPPY()
131 ++MYSQL_CHECK_NUMA()
132 +
133 + IF(CMAKE_CROSSCOMPILING)
134 + # Use CHECK_C_SOURCE_COMPILES instead of CHECK_C_SOURCE_RUNS when
135 +@@ -504,11 +504,6 @@
136 + )
137 + ENDIF()
138 +
139 +-UNSET(NUMA_LIBRARY)
140 +-IF(HAVE_LIBNUMA)
141 +- SET(NUMA_LIBRARY "numa")
142 +-ENDIF()
143 +-
144 + MYSQL_ADD_PLUGIN(xtradb ${INNOBASE_SOURCES} STORAGE_ENGINE
145 + DEFAULT
146 + RECOMPILE_FOR_EMBEDDED
147 +diff --git a/mysql-test/include/have_numa.inc b/mysql-test/include/have_numa.inc
148 +new file mode 100644
149 +index 000000000000..18bca99e04d7
150 +--- /dev/null
151 ++++ b/mysql-test/include/have_numa.inc
152 +@@ -0,0 +1,9 @@
153 ++let $numa_support = `SELECT COUNT(VARIABLE_VALUE) = 1 FROM
154 ++ INFORMATION_SCHEMA.GLOBAL_VARIABLES
155 ++ WHERE VARIABLE_NAME='innodb_numa_interleave'`;
156 ++
157 ++if ( $numa_support == 0 )
158 ++{
159 ++ --skip Test requires: Binary must be built with NUMA support.
160 ++}
161 ++
162 +diff --git a/mysql-test/suite/sys_vars/r/innodb_numa_interleave_basic.result b/mysql-test/suite/sys_vars/r/innodb_numa_interleave_basic.result
163 +new file mode 100644
164 +index 000000000000..21ed16c1dab8
165 +--- /dev/null
166 ++++ b/mysql-test/suite/sys_vars/r/innodb_numa_interleave_basic.result
167 +@@ -0,0 +1,11 @@
168 ++call mtr.add_suppression("InnoDB: Failed to set NUMA memory policy");
169 ++SELECT @@GLOBAL.innodb_numa_interleave;
170 ++@@GLOBAL.innodb_numa_interleave
171 ++1
172 ++SET @@GLOBAL.innodb_numa_interleave=off;
173 ++ERROR HY000: Variable 'innodb_numa_interleave' is a read only variable
174 ++SELECT @@GLOBAL.innodb_numa_interleave;
175 ++@@GLOBAL.innodb_numa_interleave
176 ++1
177 ++SELECT @@SESSION.innodb_numa_interleave;
178 ++ERROR HY000: Variable 'innodb_numa_interleave' is a GLOBAL variable
179 +diff --git a/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic.test b/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic.test
180 +new file mode 100644
181 +index 000000000000..518b5ebba177
182 +--- /dev/null
183 ++++ b/mysql-test/suite/sys_vars/t/innodb_numa_interleave_basic.test
184 +@@ -0,0 +1,15 @@
185 ++--source include/have_innodb.inc
186 ++--source include/have_numa.inc
187 ++
188 ++call mtr.add_suppression("InnoDB: Failed to set NUMA memory policy");
189 ++
190 ++SELECT @@GLOBAL.innodb_numa_interleave;
191 ++
192 ++--error ER_INCORRECT_GLOBAL_LOCAL_VAR
193 ++SET @@GLOBAL.innodb_numa_interleave=off;
194 ++
195 ++SELECT @@GLOBAL.innodb_numa_interleave;
196 ++
197 ++--error ER_INCORRECT_GLOBAL_LOCAL_VAR
198 ++SELECT @@SESSION.innodb_numa_interleave;
199 ++
200 +diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
201 +index 87e000faf025..ad6dcc1bb643 100644
202 +--- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result
203 ++++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result
204 +@@ -2,6 +2,7 @@ select * from information_schema.system_variables
205 + where variable_name like 'innodb%' and
206 + variable_name not in (
207 + 'innodb_disallow_writes', # only available WITH_WSREP
208 ++'innodb_numa_interleave', # only available WITH_NUMA
209 + 'innodb_sched_priority_cleaner', # linux only
210 + 'innodb_use_native_aio') # default value depends on OS
211 + order by variable_name;
212 +diff --git a/mysql-test/suite/sys_vars/t/sysvars_innodb.test b/mysql-test/suite/sys_vars/t/sysvars_innodb.test
213 +index bd8442b6a443..38f248cb6113 100644
214 +--- a/mysql-test/suite/sys_vars/t/sysvars_innodb.test
215 ++++ b/mysql-test/suite/sys_vars/t/sysvars_innodb.test
216 +@@ -9,6 +9,7 @@ select * from information_schema.system_variables
217 + where variable_name like 'innodb%' and
218 + variable_name not in (
219 + 'innodb_disallow_writes', # only available WITH_WSREP
220 ++ 'innodb_numa_interleave', # only available WITH_NUMA
221 + 'innodb_sched_priority_cleaner', # linux only
222 + 'innodb_use_native_aio') # default value depends on OS
223 + order by variable_name;
224 +