mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 00:37:35 +00:00
AK: Allow alignment to cache line size with CACHE_ALIGNED
This is particularly important to avoid false sharing, which thrashes performance when two process-shared atomics are on the same cache line.
This commit is contained in:
parent
d463f6e00a
commit
65b338ad04
1 changed files with 13 additions and 0 deletions
|
@ -110,3 +110,16 @@ extern "C" {
|
||||||
# define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC
|
# define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC
|
||||||
# define CLOCK_REALTIME_COARSE CLOCK_REALTIME
|
# define CLOCK_REALTIME_COARSE CLOCK_REALTIME
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SYSTEM_CACHE_ALIGNMENT_SIZE
|
||||||
|
# if ARCH(AARCH64) || ARCH(x86_64)
|
||||||
|
# define SYSTEM_CACHE_ALIGNMENT_SIZE 64
|
||||||
|
# else
|
||||||
|
# define SYSTEM_CACHE_ALIGNMENT_SIZE 128
|
||||||
|
# endif
|
||||||
|
#endif /* SYSTEM_CACHE_ALIGNMENT_SIZE */
|
||||||
|
|
||||||
|
#ifdef CACHE_ALIGNED
|
||||||
|
# undef CACHE_ALIGNED
|
||||||
|
#endif
|
||||||
|
#define CACHE_ALIGNED alignas(SYSTEM_CACHE_ALIGNMENT_SIZE)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue