diff options
author | Alexey Kopytov <akopytov@gmail.com> | 2016-04-01 11:31:53 +1100 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2016-06-07 13:02:31 +0400 |
commit | 49ad08450369dbf7ee85759786b6b844e1460471 (patch) | |
tree | 082a53e9df5819659b8f248033b2493fb1e01128 /include/my_global.h | |
parent | 935033aea75fd57afc11d842d3d0cd7e1b533353 (diff) | |
download | mariadb-git-49ad08450369dbf7ee85759786b6b844e1460471.tar.gz |
Few improvements related to CPU cache line size and padding:
Bug #79636: CACHE_LINE_SIZE should be 128 on AArch64
Bug #79637: Hard-coded cache line size
Bug #79638: Reconcile CACHE_LINE_SIZE with CPU_LEVEL1_DCACHE_LINESIZE
Bug #79652: Suspicious padding in srv_conc_t
- changed CPU_LEVEL1_DCACHE_LINESIZE to default to 128 bytes on POWER
and AArch64 architectures in cases when no value could be detected
by CMake using getconf
- changed CACHE_LINE_SIZE definition in ut0counter.h to be an alias of
CPU_LEVEL1_DCACHE_LINESIZE
- changed a number of hard-coded 64-byte cache line size values in the
InnoDB code
- fixed insufficient padding for srv_conc members in srv0conc.cc
Ported to Mariadb by Daniel Black <daniel.black@au.ibm.com>
Added s390 cache size of 256 at same time.
Diffstat (limited to 'include/my_global.h')
-rw-r--r-- | include/my_global.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/my_global.h b/include/my_global.h index 7ed306b8b56..1cf3f217549 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -1232,4 +1232,22 @@ static inline double rint(double x) #undef __GNUG__ #endif +/* + Provide defaults for the CPU cache line size, if it has not been detected by + CMake using getconf +*/ +#if !defined(CPU_LEVEL1_DCACHE_LINESIZE) || CPU_LEVEL1_DCACHE_LINESIZE == 0 + #if CPU_LEVEL1_DCACHE_LINESIZE == 0 + #undef CPU_LEVEL1_DCACHE_LINESIZE + #endif + + #if defined(__s390__) + #define CPU_LEVEL1_DCACHE_LINESIZE 256 + #elif defined(__powerpc__) || defined(__aarch64__) + #define CPU_LEVEL1_DCACHE_LINESIZE 128 + #else + #define CPU_LEVEL1_DCACHE_LINESIZE 64 + #endif +#endif + #endif /* my_global_h */ |