TxLinux: using and managing hardware transactional memory in an operating system

TxLinux is a variant of Linux that is the first operating system to

use hardware transactional memory (HTM) as a synchronization

primitive, and the first to manage HTMin the scheduler. This paper

describes and measures TxLinux and discusses two innovations in

detail: cooperation between locks and transactions, and the integration

of transactions with the OS scheduler. Mixing locks and transactions

requires a new primitive, cooperative transactional spinlocks

(cxspinlocks) that allow locks and transactions to protect the

same data while maintaining the advantages of both synchronization

primitives. Cxspinlocks allow the system to attempt execution

of critical regions with transactions and automatically roll back to

use locking if the region performs I/O. Integrating the scheduler

with HTM eliminates priority inversion. On a series of real-world

benchmarks TxLinux has similar performance to Linux, exposing

concurrency with as many as 32 concurrent threads on 32 CPUs in

the same critical region.

In  SOSP

Details

TypeInproceedings
Pages87-102
> Publications > TxLinux: using and managing hardware transactional memory in an operating system