Unfair Queued Spinlocks and Transactional Locks

Session information has not yet been published for this event.


One Line Summary

A performance review on unfair queued spinlocks for virtual guests and transactional locks based on the Intel's TSX technology.


The qspinlock patch that went into the 4.2 kernel had support for PV qspinlock for paravirtual guests and simple byte unfair lock for other VM guests. On an over-committed guest, the heavy vmexit and vmenter overhead of pvqspinlock can slow down system performance rather significantly. The unfair byte lock performs well on small guest, but it doesn’t scale well when the number of vCPU increases. The unfair qspinlock patch can scale almost as well as the fair qspinlock patch without the performance overhead of the pvqspinlock.

On Intel Haswell-EX and newer CPUs, the TSX technology can enable a new class of transactional locks that can be useful in situation where fine-grained locking is hard. This session will talk about a proposed implementation for a new set of locking APIs that are direct replacement of the spinlock APIs to enable the use of transactional locking for selected locks in the kernel.


performance, locking, scalability

Presentation Materials



  • Longman


    Waiman Long is an experienced software engineer working in the Linux Performance and Scalability team of HP Enterprise Server Group. He is responsible for investigating and resolving performance and scalability issues of the Linux kernel on large multi-node NUMA systems. He is also a major contributor in revamping the Linux kernel synchronization primitives in recent years.

    He has multiple years of working experience on Linux, HP-UX and Tru64 UNIX in both the kernel and the C runtime library. He is also an expert in the field of software internationalization.