summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexey Kopytov <akopytov@gmail.com>2016-04-01 11:31:53 +1100
committerSergey Vojtovich <svoj@mariadb.org>2016-06-07 13:02:31 +0400
commit49ad08450369dbf7ee85759786b6b844e1460471 (patch)
tree082a53e9df5819659b8f248033b2493fb1e01128 /include
parent935033aea75fd57afc11d842d3d0cd7e1b533353 (diff)
downloadmariadb-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')
-rw-r--r--include/my_global.h18
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 */