OS Support for Virtualizing Hardware Transactional Memory
File(s)
Date
2008Author
Swift, Michael M.
Volos, Haris
Goyal, Neelam
Yen, Luke
Hill, Mark D.
Wood, David A.
Publisher
University of Wisconsin-Madison Department of Computer Sciences
Metadata
Show full item recordAbstract
Transactional memory promises to simplify multithreaded
programming. Hardware TM (HTM) implementations promise better
performance by augmenting processors with transactional
state. However, HTMs interact poorly with the operating system or
virtual machine monitor. For example, they often do not tolerate OS
actions that virtualize processors and memory, such as context
switching and paging. Without support for these actions, an HTM may
not execute programs correctly or guarantee forward progress.
We investigate virtualizing transactional memory in the context of
LogTM-SE. First, we describe an implementation of a kernel module in
OpenSolaris that implements transactional virtualization and requires
only 1120 lines of code. Second, we find that LogTM-SE interacts
poorly with virtual machine monitors due to a reliance on physical
addresses. We propose an extension to LogTM-SE, called LogTM-VSE, that
addresses these problems and improves context-switching
performance. Third, through application tracing on real hardware and
full system simulation, we show virtualizing transactions can be
necessary for system stability and to support code that voluntarily
context switches. However, we find that aborting a transaction is
generally faster than virtualizing it, and hence preferable in some
cases.
Permanent Link
http://digital.library.wisc.edu/1793/60624Citation
TR1630