Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2(EOL)
Description
MDEV-10829 introduced a cmake check for NUMA libraries, which is presumably supposed to enable the logic if the checks pass. It does not seem to happen.
-- Looking for include file numa.h
|
-- Looking for include file numa.h - found
|
-- Looking for include file numaif.h
|
-- Looking for include file numaif.h - found
|
-- Performing Test HAVE_LIBNUMA
|
-- Performing Test HAVE_LIBNUMA - Success
|
$ cmake . -LAH | grep -i numa
|
// Explicitly set NUMA memory allocation policy
|
WITH_NUMA:BOOL=ON
|
$ grep NUMA include/my_config.h
|
#define HAVE_LIBNUMA 1
|
But I still don't get innodb_numa_interleave variable, apparently because WITH_NUMA which is checked by ha_innodb.cc is not passed through any defines.
Attachments
Issue Links
- relates to
-
MDEV-10829 Enable Innodb NUMA interleave - (and only use available nodes)
-
- Closed
-
Dan, why are the options and compile checks that only affect innodb are in config.h? Engines usually have nothing to look for there.
Also, is the reason for libnuma only to workaround Linux memory management "swappiness" for huge allocations that spawn more that node0? Then it should only be checked on Linux with IF(CMAKE_SYSTEM_NAME MATCHES "Linux"). If this is valid for other Unixes, then
IF(UNIX) is appropriate. There is no reason for irrelevant checks to be run on OSes that either have no libnuma, or do not expose the problem that innodb_numa_interleave tries to workaround.