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

  • Authors:
  • Christopher J. Rossbach;Owen S. Hofmann;Donald E. Porter;Hany E. Ramadan;Bhandari Aditya;Emmett Witchel

  • Affiliations:
  • University of Texas, Austin, TX;University of Texas, Austin, TX;University of Texas, Austin, TX;University of Texas, Austin, TX;University of Texas, Austin, TX;University of Texas, Austin, TX

  • Venue:
  • Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 HTM in the scheduler. This paper describes and measures TxLinux and discusses two innovations in detail: cooperation between locks and transactions, and theintegration 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 attemptexecution 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 ofreal-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.