`Capability` allocation doesn't respect alignment
struct Capability_
currently carries an align
attribute indicating to the compiler that values should always be aligned (on x86-64/Linux) to 64-bytes. This attribute was intended avoid performance issues due to false-sharing.
However, when allocating Capability
s (e.g. in moreCapabilities
) we fail to convey to the allocator that we need aligned memory. This is problematic as the compiler may also use our declared alignment as an invitation to use instructions with particular alignment requirements (e.g. many of x86's SIMD instructions).
This resulted in #22965 (closed).