3 ms·
The moral of the story for software developers is to be aware of false sharing and cache line bouncing when writing multithreaded code. Seemingly innocent code
by bluetomcat 10y ago
The moral of the story for software developers is to be aware of false sharing and cache line bouncing when writing multithreaded code.
Seemingly innocent code like this will most likely cause completely unnecessary inter-core traffic (assuming that the compiler has laid out a and b adjacently, and they both fall within the boundaries of a single cache line):
unsigned a, b;
void thread_a(void) {
for (;;) a++;
}
void thread_b(void) {
for (;;) b++;
}