20-24 September 2021
US/Pacific timezone

Compact NUMA-aware Locks

23 Sep 2021, 10:30
Microconference3/Virtual-Room (LPC Virtual)


LPC Virtual

Performance and Scalability MC Performance and Scalability MC


Alex Kogan (Oracle Labs) Dave Dice (Oracle Labs)


Lock throughput can be increased by handing a lock to a waiter on the
same NUMA node as the lock holder, provided care is taken to avoid
starvation of waiters on other NUMA nodes. This talk will discuss CNA
(compact NUMA-aware lock) as the slow path alternative for the current
implementation of qspinlocks in the kernel.

CNA is a NUMA-aware version of the MCS spin-lock. Spinning threads are
organized in two queues, a main queue for threads running on the same
node as the current lock holder, and a secondary queue for threads
running on other nodes. Experimental results with micro and macrobenchmarks
confirm that the throughput of a system with contended qspinlocks can increase
up to ~3x with CNA, depending on the actual workload.

I agree to abide by the anti-harassment policy I agree

Primary authors

Alex Kogan (Oracle Labs) Dave Dice (Oracle Labs)

Presentation Materials