summarylogtreecommitdiffstats
path: root/mongodb-4.4.15-adjust-cache-alignment-assumptions.patch.arm64
blob: 27c4a2da4d4aa9f394c81c67a9548df5af778978 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 5c9e0d0fc9188bab0ae09c9c33df01938b0c1b6c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 14 Apr 2022 09:25:33 -0700
Subject: [PATCH] server: Adjust the cache alignment assumptions

aarch64 has 256 for hardware_destructive_interference_size and gcc 12
has added a warning to complain about mismatches which results in
static_assert failures

In file included from src/mongo/s/commands/cluster_find_cmd.cpp:39:
src/mongo/db/stats/counters.h:185:47: error: static assertion failed: cache line spill
 185 |     static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size,
     |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The structure need to ensure true sharing for both the elements
so align it to hardware_constructive_interference_size instead

Upstream-Status: Reported [https://jira.mongodb.org/browse/SERVER-65664]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 src/mongo/db/stats/counters.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/src/mongo/db/stats/counters.h
+++ b/src/mongo/db/stats/counters.h
@@ -182,8 +182,8 @@ private:
         AtomicWord<long long> requests{0};
     };
     CacheAligned<Together> _together{};
-    static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size,
-                  "cache line spill");
+    static_assert(sizeof(Together) <= stdx::hardware_constructive_interference_size,
+                   "cache line spill");

     CacheAligned<AtomicWord<long long>> _logicalBytesOut{0};