Solving Difficult HTM Problems Without Difficult Hardware
Owen S. Hofmann, Donald E. Porter, Christopher J. Rossbach, Hany E. Ramadan, Emmett Witchel · 2007
There are several classes of operations, including I/O and memory allocation, that are considered difficult to perform as part of a transaction. To allow such operations inside of transactions, previous hardware transactional memory systems have proposed additional mechanisms such as opennested transactions that use hardware management of software handlers. Open-nested transactions are not necessary, and add significant complexity to both HTM systems and the software written to take advantage of them. MetaTM is an HTM system designed to run TxLinux, an operating system that uses transactions for some synchronization. Inside the operating system, it is necessary to efficiently handle I/O and memory allocation. MetaTM and TxLinux handle both of these without requiring the significant extra hardware or overhead associated with open-nested transactions. The TxLinux kernel uses cooperative transactional spinlocks which provide the concurrency of transactions with the mutual exclusion needed to perform I/O. Through explicit management of transactional system calls, TxLinux ensures strong atomicity for system calls within a transaction, providing user-level transactions with a powerful and simple transactional programming model. 1.