Patrick Williams | 03907ee | 2022-05-01 06:28:52 -0500 | [diff] [blame] | 1 | From 5c9e0d0fc9188bab0ae09c9c33df01938b0c1b6c Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Thu, 14 Apr 2022 09:25:33 -0700 |
| 4 | Subject: [PATCH] server: Adjust the cache alignment assumptions |
| 5 | |
| 6 | aarch64 has 256 for hardware_destructive_interference_size and gcc 12 |
| 7 | has added a warning to complain about mismatches which results in |
| 8 | static_assert failures |
| 9 | |
| 10 | In file included from src/mongo/s/commands/cluster_find_cmd.cpp:39: |
| 11 | src/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 | |
| 15 | The structure need to ensure true sharing for both the elements |
| 16 | so align it to hardware_constructive_interference_size instead |
| 17 | |
| 18 | Upstream-Status: Reported [https://jira.mongodb.org/browse/SERVER-65664] |
| 19 | |
| 20 | Signed-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 | |