1From 5c9e0d0fc9188bab0ae09c9c33df01938b0c1b6c Mon Sep 17 00:00:00 2001 2From: Khem Raj <raj.khem@gmail.com> 3Date: Thu, 14 Apr 2022 09:25:33 -0700 4Subject: [PATCH] server: Adjust the cache alignment assumptions 5 6aarch64 has 256 for hardware_destructive_interference_size and gcc 12 7has added a warning to complain about mismatches which results in 8static_assert failures 9 10In file included from src/mongo/s/commands/cluster_find_cmd.cpp:39: 11src/mongo/db/stats/counters.h:185:47: error: static assertion failed: cache line spill 12 185 | static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size, 13 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14 15The structure need to ensure true sharing for both the elements 16so align it to hardware_constructive_interference_size instead 17 18Upstream-Status: Inappropriate [https://jira.mongodb.org/browse/SERVER-65664] 19 20Signed-off-by: Khem Raj <raj.khem@gmail.com> 21--- 22 src/mongo/db/stats/counters.h | 6 +++--- 23 1 file changed, 3 insertions(+), 3 deletions(-) 24 25--- a/src/mongo/db/stats/counters.h 26+++ b/src/mongo/db/stats/counters.h 27@@ -182,8 +182,8 @@ private: 28 AtomicWord<long long> requests{0}; 29 }; 30 CacheAligned<Together> _together{}; 31- static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size, 32- "cache line spill"); 33+ static_assert(sizeof(Together) <= stdx::hardware_constructive_interference_size, 34+ "cache line spill"); 35 36 CacheAligned<AtomicWord<long long>> _logicalBytesOut{0}; 37 38