Haris Volos, Andres Jaan Tack, Neelam Goyal, Michael M. Swift, Adam Welc
2009 Proceedings of the fourth ACM european conference on Computer systems - EuroSys '09  
Memory transactions, similar to database transactions, allow a programmer to focus on the logic of their program and let the system ensure that transactions are atomic and isolated. Thus, programs using transactions do not suffer from deadlock. However, when a transaction performs I/O or accesses kernel resources, the atomicity and isolation guarantees from the TM system do not apply to the kernel. The xCall interface is a new API that provides transactional semantics for system calls. With a
more » ... tem calls. With a combination of deferral and compensation, xCalls enable transactional memory programs to use common OS functionality within transactions. We implement xCalls for the Intel Software Transactional Memory compiler, and found it straightforward to convert programs to use transactions and xCalls. In tests on a 16-core NUMA machine, we show that xCalls enable concurrent I/O and system calls within transactions. Despite the overhead of implementing transactions in software, transactions with xCalls improved the performance of two applications with poor locking behavior by 16 and 70%.
doi:10.1145/1519065.1519093 dblp:conf/eurosys/VolosTGSW09 fatcat:dqy3xevganbdpkr5vjhasjutmm