Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2150976.2150994acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

A case for unlimited watchpoints

Published: 03 March 2012 Publication History

Abstract

Numerous tools have been proposed to help developers fix software errors and inefficiencies. Widely-used techniques such as memory checking suffer from overheads that limit their use to pre-deployment testing, while more advanced systems have such severe performance impacts that they may require special-purpose hardware. Previous works have described hardware that can accelerate individual analyses, but such specialization stymies adoption; generalized mechanisms are more likely to be added to commercial processors. This paper demonstrates that the ability to set an unlimited number of fine-grain data watchpoints can reduce the runtime overheads of numerous dynamic software analysis techniques. We detail the watchpoint capabilities required to accelerate these analyses while remaining general enough to be useful in the future. We describe a hardware design that stores watchpoints in main memory and utilizes two different on-chip caches to accelerate performance. The first is a bitmap lookaside buffer that stores fine-grained watchpoints, while the second is a range cache that can efficiently hold large contiguous regions of watchpoints. As an example of the power of such a system, it is possible to use watchpoints to accelerate read/write set checks in a software data race detector by nearly 9x.

References

[1]
A. W. Appel, J. R. Ellis, and K. Li. Real-time Concurrent Collection on Stock Multiprocessors. In the Proc. of the Conference on Programming Language Design and Implementation (PLDI), 1988.
[2]
A. W. Appel and K. Li. Virtual Memory Primitives for User Programs. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1991.
[3]
L. Baugh, N. Neelakantam, and C. Zilles. Using Hardware Memory Protection to Build a High-Performance, Strongly-Atomic Hybrid Transactional Memory. In the Proc. of the International Symposium on Computer Architecture (ISCA), 2008.
[4]
B. Beander. VAX DEBUG: An Interactive, Symbolic, Multilingual Debugger. In the Proc. of the Software Engineering Symposium on High-level Debugging, 1983.
[5]
T. Bergan, J. Devietti, N. Hunt, and L. Ceze. The Deterministic Execution Hammer: How Well Does it Actually Pound Nails? In the Workshop on Determinism and Correctness in Parallel Programming (WoDet), 2011.
[6]
E. D. Berger, T. Yang, T. Liu, and G. Novark. Grace: Safe Multithreaded Programming for C/C+. In the Proc. of the International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2009.
[7]
A. Bessey, K. Block, B. Chelf, A. Chou, B. Fulton, S. Hallem, C. Henri-Gros, A. Kamsky, S. McPeak, and D. Engler. A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World. Communications of the ACM, 53(2):66--75, February 2010.
[8]
C. Bienia, S. Kumar, J. P. Singh, and K. Li. The PARSEC Benchmark Suite: Characterization and Architectural Implications. In the Proc. of the International Conference on Parallel Architectures and Compilation Techniques (PACT), 2008.
[9]
E. Bosman, A. Slowinska, and H. Bos. Minemu: The World's Fastest Taint Tracker. In the Proc. of the International Symposium on Recent Advances in Intrusion Detection (RAID), 2011.
[10]
S. Chaudhry, R. Cypher, M. Ekman, M. Karlsson, A. Landin, S. Yip, H. Zeffer, and M. Tremblay. Rock: A High-Performance Sparc CMT Processor. IEEE Micro, 29(2):6--16, 2009.
[11]
S. Chaudhry, R. Cypher, M. Ekman, M. Karlsson, A. Landin, S. Yip, H. Zeffer, and M. Tremblay. Simultaneous Speculative Threading: A Novel Pipeline Architecture Implemented in Sun's ROCK Processor. In the Proc. of the International Symposium on Computer Architecture (ISCA), 2009.
[12]
S. Chen, J. Xu, N. Nakka, Z. Kalbarczyk, and R. K. Iyer. Defeating Memory Corruption Attacks via Pointer Taintedness Detection. In the Proc. of the International Conference on Dependable Systems and Networks (DSN), 2005.
[13]
C. J. Cheney. A Nonrecursive List Compacting Algorithm. Communications of the ACM, 13(11):677--678, November 1970.
[14]
T. Chiueh. Fast Bounds Checking Using Debug Registers. In the Proc. of the International Conference on High Performance Embedded Architectures & Compilers (HiPEAC), 2008.
[15]
D. R. Ditzel. Architectural Support for Programming Languages in the X-Tree Processor. In Spring COMPCON, 1980.
[16]
J. Erickson, M. Musuvathi, S. Burckhardt, and K. Olynyk. Effective Data-Race Detection for the Kernel. In the Proc. of the Symposium on Operating Systems Design and Implementation (OSDI), 2010.
[17]
R. R. Fenichel and J. C. Yochelson. A LISP Garbage-Collector for Virtual-Memory Computer Systems. Communications of the ACM, 12(11):611--612, November 1969.
[18]
J. L. Greathouse, C. LeBlanc, T. Austin, and V. Bertacco. Highly Scalable Distributed Dataflow Analysis. In the Proc. of the Symposium on Code Generation and Optimization (CGO), 2011.
[19]
J. L. Greathouse, Z. Ma, M. I. Frank, R. Peri, and T. Austin. Demand-Driven Software Race Detection using Hardware Performance Counters. In the Proc. of the International Symposium on Computer Architecture (ISCA), 2011.
[20]
M. D. Hill, D. Hower, K. E. Moore, M. M. Swift, H. Volos, and D. A. Wood. A Case for Deconstructing Hardware Transactional Memory Systems. Technical report, University of Wisconsin-Madison, 2007.
[21]
A. Ho, M. Fetterman, C. Clark, A. Warfield, and S. Hand. Practical Taint-Based Protection using Demand Emulation. In the Proc. of the European Conference on Computer Systems (EuroSys), 2006.
[22]
M. S. Johnson. Some Requirements for Architectural Support of Software Debugging. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1982.
[23]
K. Kelsey, T. Bai, C. Ding, and C. Zhang. Fast Track: A Software System for Speculative Program Optimization. In the Proc. of the Symposium on Code Generation and Optimization (CGO), 2009.
[24]
E. Larson and T. Austin. High Coverage Detection of Input-Related Security Faults. In the Proc. of the USENIX Security Symposium, 2003.
[25]
C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation. In the Proc. of the Conference on Programming Language Design and Implementation (PLDI), 2005.
[26]
J. Lyu, Y. Kim, Y. Kim, and I. Lee. A Procedure-Based Dynamic Software Update. In the Proc. of the International Conference on Dependable Systems and Networks (DSN), 2001.
[27]
R. E. McLear, D. M. Scheibelhut, and E. Tammaru. Guidelines for Creating a Debuggable Processor. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1982.
[28]
L. McVoy and C. Staelin. lmbench: Portable Tools for Performance Analysis. In the Proc. of the USENIX Annual Technical Conference, 1996.
[29]
S. Mysore, B. Mazloom, B. Agrawal, and T. Sherwood. Understanding and Visualizing Full Systems with Data Flow Tomography. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2008.
[30]
N. Neelakantam and C. Zilles. UFO: A General-Purpose User-Mode Memory Protection Technique for Application Use. Technical report, University of Illinois at Urbana-Champaign, 2007.
[31]
R. H. B. Netzer and B. P. Miller. What Are Race Conditions? Some Issues and Formalizations. ACM Letters on Programming Languages and Systems, 1(1):74--88, March 1992.
[32]
F. Qin, S. Lu, and Y. Zhou. SafeMem: Exploiting ECC-Memory for Detecting Memory Leaks and Memory Corruption During Produciton Runs. In the Proc. of the International Symposium on High-Performance Computer Architecture (HPCA), 2005.
[33]
C. Ranger, R. Raghuraman, A. Penmetsa, G. Bradski, and C. Kozyrakis. Evaluating MapReduce for Multi-core and Multiprocessor Systems. In the Proc. of the International Symposium on High-Performance Computer Architecture (HPCA), 2007.
[34]
I. Schoinas, B. Falsafi, A. R. Lebeck, S. K. Reinhardt, J. R. Larus, and D. A. Wood. Fine-grain Access Control for Distributed Shared Memory. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1994.
[35]
E. Schonberg. On-The-Fly Detection of Access Anomalies. In the Proc. of the Conference on Programming Language Design and Implementation (PLDI), 1989.
[36]
E. Schrock. Watchpoints 101. http://blogs.oracle.com/eschrock/entry/watchpoints_101, July 2004.
[37]
J. Seward and N. Nethercote. Using Valgrind to Detect Undefined Value Errors with Bit-precision. In the Proc. of the USENIX Annual Technical Conference, 2005.
[38]
A. Shriraman and S. Dwarkadas. Sentry: Light-Weight Auxiliary Memory Access Control. In the Proc. of the International Symposium on Computer Architecture (ISCA), 2010.
[39]
B. Sprunt. The Basics of Performance-Monitoring Hardware. IEEE Micro, 22(4):64--71, 2002.
[40]
M. Tiwari, B. Agrawal, S. Mysore, J. Valamehr, and T. Sherwood. A Small Cache of Large Ranges: Hardware Methods for Efficiently Searching, Storing, and Updating Big Dataflow Tags. In the Proc. of the International Symposium on Microarchitecture (MICRO), 2008.
[41]
G. Venkataramani, I. Doudalis, Y. Solihin, and M. Prvulovic. FlexiTaint: A Programmable Accelerator for Dynamic Taint Propagation. In the Proc. of the International Symposium on High-Performance Computer Architecture (HPCA), 2008.
[42]
G. Venkataramani, B. Roemer, Y. Solihin, and M. Prvulovic. MemTracker: Efficient and Programmable Support for Memory Access Monitoring and Debugging. In the Proc. of the International Symposium on High-Performance Computer Architecture (HPCA), 2007.
[43]
R. Wahbe. Efficient Data Breakpoints. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1992.
[44]
Z. Wang, X. Jiang, W. Cui, and P. Ning. Countering Kernel Rootkits with Lightweight Hook Protection. In the Proc. of the Conference on Computer and Communications Security (CCS), 2009.
[45]
E. Witchel. Considerations for Mondriaan-like Systems. In the Workshop on Duplicating, Deconstructing, and Debunking (WDDD), 2009.
[46]
E. Witchel, J. Cates, and K. Asanovic. Mondrian Memory Protection. In the Proc. of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2002.
[47]
M. T. Yourst. PTLsim: A Cycle Accurate Full System x86--64 Microarchitectural Simulator. In the Proc. of the International Symposium on Performance Analysis of Systems and Software (ISPASS), 2007.
[48]
M. Zagha, B. Larson, S. Turner, and M. Itzkowitz. Performance Analysis Using the MIPS R10000 Performance Counters. In the Proc. of the ACM/IEEE Conference on Supercomputing, 1996.
[49]
Q. Zhao, D. Bruening, and S. Amarasinghe. Umbra: Efficient and Scalable Memory Shadowing. In the Proc. of the Symposium on Code Generation and Optimization (CGO), 2010.
[50]
P. Zhou, F. Qin, W. Liu, Y. Zhou, and J. Torrellas. iWatcher: Efficient Architectural Support for Software Debugging. In the Proc. of the International Symposium on Computer Architecture (ISCA), 2004.

Cited By

View all
  • (2021)FlexFilt: Towards Flexible Instruction Filtering for SecurityProceedings of the 37th Annual Computer Security Applications Conference10.1145/3485832.3488019(646-659)Online publication date: 6-Dec-2021
  • (2020)PHMonProceedings of the 29th USENIX Conference on Security Symposium10.5555/3489212.3489258(807-824)Online publication date: 12-Aug-2020
  • (2020)FastPath_MPACM Transactions on Architecture and Code Optimization10.1145/342313417:4(1-23)Online publication date: 25-Nov-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS XVII: Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
March 2012
476 pages
ISBN:9781450307598
DOI:10.1145/2150976
  • cover image ACM SIGARCH Computer Architecture News
    ACM SIGARCH Computer Architecture News  Volume 40, Issue 1
    ASPLOS '12
    March 2012
    453 pages
    ISSN:0163-5964
    DOI:10.1145/2189750
    Issue’s Table of Contents
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 47, Issue 4
    ASPLOS '12
    April 2012
    453 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2248487
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 March 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. data race detection
  2. demand-driven analysis
  3. deterministic concurrent execution
  4. taint analysis
  5. watchpoints

Qualifiers

  • Research-article

Conference

ASPLOS'12

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)29
  • Downloads (Last 6 weeks)6
Reflects downloads up to 26 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2021)FlexFilt: Towards Flexible Instruction Filtering for SecurityProceedings of the 37th Annual Computer Security Applications Conference10.1145/3485832.3488019(646-659)Online publication date: 6-Dec-2021
  • (2020)PHMonProceedings of the 29th USENIX Conference on Security Symposium10.5555/3489212.3489258(807-824)Online publication date: 12-Aug-2020
  • (2020)FastPath_MPACM Transactions on Architecture and Code Optimization10.1145/342313417:4(1-23)Online publication date: 25-Nov-2020
  • (2020)On Architectural Support for Instruction Set RandomizationACM Transactions on Architecture and Code Optimization10.1145/341984117:4(1-26)Online publication date: 10-Nov-2020
  • (2020)LLOVACM Transactions on Architecture and Code Optimization10.1145/341859717:4(1-26)Online publication date: 22-Dec-2020
  • (2020)Tailored page sizesProceedings of the ACM/IEEE 47th Annual International Symposium on Computer Architecture10.1109/ISCA45697.2020.00078(900-912)Online publication date: 30-May-2020
  • (2019)Software Data PlanesProceedings of the ACM Symposium on Cloud Computing10.1145/3357223.3362737(337-350)Online publication date: 20-Nov-2019
  • (2018)SandTrapProceedings of the 16th Annual International Conference on Mobile Systems, Applications, and Services10.1145/3210240.3210321(230-242)Online publication date: 10-Jun-2018
  • (2018)Practical memory safety with RESTProceedings of the 45th Annual International Symposium on Computer Architecture10.1109/ISCA.2018.00056(600-611)Online publication date: 2-Jun-2018
  • (2018)Interference from GPU System Service Requests2018 IEEE International Symposium on Workload Characterization (IISWC)10.1109/IISWC.2018.8573485(179-190)Online publication date: Sep-2018
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media