ACM Home Page
Please provide us with feedback. Feedback
xCalls: safe I/O in memory transactions
Full text PdfPdf (562 KB)
Source
European Conference on Computer Systems archive
Proceedings of the 4th ACM European conference on Computer systems table of contents
Nuremberg, Germany
SESSION: Helping programmers table of contents
Pages 247-260  
Year of Publication: 2009
ISBN:978-1-60558-482-9
Authors
Haris Volos  University of Wisconsin-Madison, Madison, WI, USA
Andres Jaan Tack  University of Wisconsin-Madison, Madison, WI, USA
Neelam Goyal  Oracle, Redwood City, CA, USA
Michael M. Swift  University of Wisconsin-Madison, Madison, WI, USA
Adam Welc  Intel, Santa Clara, CA, USA
Sponsor
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): n/a,   Downloads (12 Months): n/a,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1519065.1519093
What is a DOI?

ABSTRACT

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 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%.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
Lee Baugh and Craig Zilles. An analysis of I/O and syscalls in critical sections and their implications for transactional memory. In TRANSACT 2, August 2007.
 
3
Andrew D. Birrell and Michael Isard. Automatic mutual exclusion. In HotOS 11, May 2007.
4
 
5
Bryan Cantrill. Concurrency's shysters. http://blogs.sun.com/bmc/entry/concurrency_s_shysters, November 2008.
6
7
 
8
Dave Dice, Ori Shalev, and Nir Shavit. Transactional locking ii. In DISC 20, September 2006.
 
9
Polina Dudnik and Michael M. Swift. Condition variables and transactional memory: Problem or opportunity? In TRANSACT 4, February 2009.
 
10
 
11
Christof Fetzer and Pascal Felber. Improving program correctness with atomic exception handling. Journal of Universal Computer Science, 13(8):1047--1072, 2007.
12
 
13
14
 
15
Tim Harris. Exceptions and side-effects in atomic blocks. In PODC Workshop on Concurrency and Synchronization in Java Programs, Jul 2004.
16
 
17
Tim Harris, Simon Marlow, Simon Peyton Jones, and Maurice Herlihy. Composable memory transactions. In PPOPP 12, June 1991.
18
19
 
20
Maurice Herlihy and J. Eliot B. Moss. Transactional memory: Architectural support for lock-free data structures. Technical Report Technical Report 92/07, Digital Cambridge Research Lab, 1992.
 
21
Intel. Intel c++ stm compiler prototype edition 2.0 language extensions and user's guide. Technical Report 318253-001US, Intel Corp., April 2008.
 
22
Internet Systems Consortium. Berkeley internet name domain (BIND). http://www.isc.org/index.pl?/sw/bind/.
23
 
24
 
25
Horatiu Jula, Daniel Tralamazza, Cristian Zamfir, and George Candea. Deadlock immunity: Enabling systems to defend against deadlocks. In OSDI 8, November 2008.
26
27
28
 
29
Vijay Menon, Steven Balensiefer, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Bratin Saha, and Adam Welc. Single global lock semantics in a weakly atomic STM. In TRANSACT 3, February 2008.
 
30
Microsoft Corp. Transactional memory team blog. http://blogs.msdn.com/stmteam/default.aspx, October 2008.
 
31
Chi Cao Minh, Martin Trautmann, JaeWoong Chung, Austen Mcdonald, Nathan Bronson, Jared Casper, Christos Kozyrakis, and Kunle Olukotun. An effective hybrid transactional memory system with strong isolation guarantees. In ISCA 34, June 2007.
 
32
Kevin E. Moore, Jayaram Bobba, Michelle J. Moravan, Mark D. Hill, and David A.Wood. Logtm: Log-based transactional memory. In HPCA 12, pages 258--269, February 2006.
33
 
34
J. Eliot B. Moss. Open nested transactions: Semantics and support. In Workshop on Memory Performance Issues, February 2006.
35
36
 
37
 
38
Oracle Corporation. Oracle Berkeley Database. http://www.oracle.com/database/berkeley-db/index.html.
39
40
 
41
 
42
Chris Schlaeger. The impact of operating systems on modern CPU designs (and vice versa). http://arcs08.inf.tu-dresden.de/docs/arcs08 schlaeger-sld.pdf,February 2008.
43
 
44
Michael F. Spear, Maged M. Michael, and Michael L. Scott. Inevitability mechanisms for software transactional memory. In TRANSACT 3, February 2008.
 
45
Thomas Strandenæs and Randi Karlsen. Transaction compensation in web services. In Norsk Informatikkonferanse, June 2002.
46
 
47
Michael M. Swift, Haris Volos, Neelam Goyal, Luke Yen, Mark D. Hill, and David A.Wood. OS support for virtualizing hardware transactional memory. In TRANSACT 3, February 2008.
 
48
Marc Tremblay and Shailender Chaudhry. A third-generation 65nm 16-core 32-thread plus 32-scout-thread cmt sparc processor. In ISSCC 2008 Conference Proceedings, February 2008.
 
49
Haris Volos, Neelam Goyal, and Michael M. Swift. Pathological interaction of locks with transactional memory. In TRANSACT 3, February 2008.
 
50
 
51
Yin Wang, Terence Kelly, Manjunath Kudlur, Stephane Lafortune, and Scott Mahlke. Gadara: Dynamic deadlock avoidance for multithreaded programs. In OSDI 8, November 2008.
52
 
53
xiph.com. Ogg Vorbis documentation. http://www.xiph.org/vorbis/doc/.
 
54
xmms.org. X Multimedia System. www.xmms.org.
 
55
 
56
Craig Zilles and Lee Baugh. Extending hardware transactional memory to support non-busy waiting and nontransactional actions. In TRANSACT 1, June 2006.

Collaborative Colleagues:
Haris Volos: colleagues
Andres Jaan Tack: colleagues
Neelam Goyal: colleagues
Michael M. Swift: colleagues
Adam Welc: colleagues