  Classic test-and-test (TS) mutual exclusion locks are simple, and enjoy high
performance and low latency of ownership transfer under light or no contention.
However, they do not scale gracefully under high contention and do not provide
any admission order guarantees. Such concerns led to the development of
scalable queue-based locks, such as a recent Compact NUMA-aware (CNA) lock, a
variant of another popular queue-based MCS lock. CNA scales well under load and
provides certain admission guarantees, but has more complicated lock handover
operations than TS and incurs higher latencies at low contention. We propose
Fissile locks, which capture the most desirable properties of both TS and CNA.
A Fissile lock consists of two underlying locks: a TS lock, which serves as a
fast path, and a CNA lock, which serves as a slow path. The key feature of
Fissile locks is the ability of threads on the fast path to bypass threads
enqueued on the slow path, and acquire the lock with less overhead than CNA.
Bypass is bounded (by a tunable parameter) to avoid starvation and ensure
long-term fairness. The result is a highly scalable NUMA-aware lock with
progress guarantees that performs like TS at low contention and like CNA at
high contention.
