Speaker
Description
Atomics can be challenging enough by themselves, and emulating them can be even worse. The lack of correctness will crash the application sooner or later, and the lack of performance will be very noticeable.
One key difference between x86 and arm64 is how they handle atomic operations on unaligned addresses. While on x86 such operations are supported transparently, on arm64 they raise a SIGBUS and the application is terminated. This creates a problem when emulating x86 games on arm64, since we can’t modify their source code to avoid unaligned atomic operations. So, we need a mechanism to handle such operations on top of arm64.
This talk will introduce the topic and describe an implementation design, benchmark results and how other OSes approached this issue.
LKML link: https://lore.kernel.org/lkml/20251117160841.334224-1-andrealmeid@igalia.com/