Abstract
The robustness of software systems is adversely affected by programming errors and security exploits that corrupt heap data structures. In this paper, we present the design and implementation of TxMon, a system to detect such data structure corruptions. TxMon leverages the concurrency control machinery implemented by hardware transactional memory (HTM) systems to additionally enforce programmer-specified consistency properties on data structures at runtime. We implemented a prototype version of TxMon using an HTM system (LogTMSE) and studied the feasibility of applying TxMon to enforce data structure consistency properties on several benchmarks. Our experiments show that TxMon is effective at monitoring data structure properties, imposing tolerable runtime performance overheads.
Funded in part by NSF CNS grants 0728937, 0831268, 0915394 and 0952128. Most of this work was done when A. Baliga was affiliated with Rutgers University.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Issues – memcached – project hosting on Google code, http://code.google.com/p/memcached/issues
Memcached: A distributed memory object caching system, http://memcached.org
Stanford transactional coherence and consistency project, http://tcc.stanford.edu
ClamAV multiple vulnerabilities, Secunia Advisories – SA28117 (December 2007)
Adi-Tabatabai, A., Lewis, B.T., Menon, V., Murphy, B.R., Saha, B.: Compiler and runtime support for efficient software transactional memory. In: ACM Conf. on Prog. Lang. Design & Impl. (June 2006)
Aho, A.V., Corasick, M.J.: Efficient string matching: An aid to bibliographic search. Comm. ACM (1975)
Bobba, J., Xiong, W., Yen, L., Hill, M.D., Wood, D.A.: StealthTest: Low overhead online software testing using transactional memory. In: Intl. Symp. Parallel Architectures and Compilation Techniques (September 2009)
Cascaval, C., Blundell, C., Michael, M., Cain, H.W., Wu, P., Chiras, S., Chatterjee, S.: Software transactional memory: Why is it only a research toy? Comm. ACM (2008)
Ceze, L., Tuck, J., Cascaval, C., Torrellas, J.: Bulk disambiguation of speculative threads in multiprocessors. In: Intl. Symp. Comp. Arch. (June 2006)
Chaudhry, S.: Rock: A third generation 65nm, 16-core, 32 thread + 32 scout-threads CMT SPARC processor. In: HotChips (2008)
Chung, J., Baek, W., Bronson, N.G., Seo, J., Kozyrakis, C., Olukotun, K.: ASeD: Availability, security, and debugging using transactional memory (poster). In: SPAA (June 2008)
Chung, J., Dalton, M., Kannan, H., Kozyrakis, C.: Thread-safe dynamic binary translation using transactional memory. In: IEEE Symp. High Perf. Comp. Arch. (February 2008)
Ernst, M.D., Perkins, J.H., Guo, P.J., McCamant, S., Pacheco, C., Tschantz, M.S., Xiao, C.: The Daikon system for dynamic detection of likely invariants. Sci. Comp. Prog. (December 2007)
Goetz, B.: Optimistic thread concurrency: Breaking the scale barrier, Azul Systems Technical Whitepaper (2009)
Hammer, M., McLeod, D.: A framework for data base semantic integrity. In: Intl. Conf. Soft. Engg. (1976)
Hammond, L., Wong, V., Chen, M., Carlstrom, B.D., Davis, J.D., Hertzberg, B., Prabhu, M.K., Wijaya, H., Kozyrakis, C., Olukotun, K.: Transactional memory coherence and consistency. In: Intl. Symp. Comp. Arch. (June 2004)
Harris, T., Peyton-Jones, S.: Transactional memory with data invariants. In: TRANSACT (June 2006)
Herlihy, M., Moss, J.E.B.: Transactional support for lock free data structures. In: Intl. Symp. Comp. Arch. (1993)
Hill, M.D., Hower, D., Moore, K.E., Swift, M.M., Volos, H., Wood, D.A.: A case for deconstructing hardware transactional memory systems. In: UW-Madison Computer Sciences Technical Report CS-TR-2007-1594 (2007)
Larus, J.R., Rajwar, R.: Transactional Memory. Synthesis Lectures on Comp. Arch. Morgan Claypool (2006)
Lenharth, A., Adve, V., King, S.T.: Recovery domains: An organizing principle for recoverable operating systems. In: ACM Conf. Architectural Support for Programming Languages and Operating Systems (March 2009)
Locasto, M.E., Stavrou, A., Cretu, G.F., Keromytis, A.D.: From STEM to SEAD: Speculative execution for automated defense. In: USENIX Annual Tech. Conf. (June 2007)
Moore, K.E., Bobba, J., Moravan, M.J., Hill, M.D., Wood, D.A.: LogTM: Log-based transactional memory. In: IEEE Symp. High Perf. Comp. Arch. (February 2006)
Stonebraker, M.: Implementation of integrity constraints and views by query modification. In: ACM SIGMOD (1975)
Woo, S.C., Ohara, M., Torrie, E., Singh, J.P., Gupta, A.: The SPLASH-2 programs: Characterization and methodological considerations. In: Intl. Symp. on Comp. Arch. (June 1995)
Yen, L., Bobba, J., Marty, M.R., Moore, K.E., Volos, H., Hill, M.D., Swift, M.M., Wood, D.A.: LogTM-SE: Decoupling hardware transactional memory from caches. In: IEEE Symp. High Perf. Comp. Arch. (February 2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Butt, S., Ganapathy, V., Baliga, A., Christodorescu, M. (2012). Monitoring Data Structures Using Hardware Transactional Memory. In: Khurshid, S., Sen, K. (eds) Runtime Verification. RV 2011. Lecture Notes in Computer Science, vol 7186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29860-8_26
Download citation
DOI: https://doi.org/10.1007/978-3-642-29860-8_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-29859-2
Online ISBN: 978-3-642-29860-8
eBook Packages: Computer ScienceComputer Science (R0)