Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2155620.2155645acmconferencesArticle/Chapter ViewAbstractPublication PagesmicroConference Proceedingsconference-collections
research-article

ATDetector: improving the accuracy of a commercial data race detector by identifying address transfer

Published: 03 December 2011 Publication History

Abstract

In order to take advantage of multi-core hardware, more and more applications are becoming multi-threaded. Unfortunately concurrent programs are prone to bugs, such as data races. Recently much work has been devoted to detecting data races in multi-threaded programs. Most tools, however, require the accurate knowledge of synchronizations in the program, and may otherwise suffer from false positives in race detection, limiting their usability. To address this problem, some tools such as Intel® Inspector provide mechanisms for suppressing false positives and/or annotating synchronizations not automatically recognized by the tools. However, they require users' input or even changes of the source code.
We took a different approach to address this problem. More specifically, we first used a state-of-the-art commercial data race detector, namely Intel® Inspector on 17 applications of various types including 5 servers, 5 client/desktop applications, and 7 scientific ones, without utilizing any suppression or annotation mechanisms provided by the product that need users' input. We examined a total of 1420 false data races and identified two major root causes including address transfer, where one thread passes memory address to another thread. We found more than 62% false data races were caused by address transfer. Based on this observation, we designed and implemented an algorithm that automatically identify address transfer and use the information to prune the false data races. Our evaluation with 8 real-world applications shows that it can effectively prune all false data races caused by unrecognized address transfers, without eliminating any true data race that was originally reported.

References

[1]
Google thread sanitizer. http://code.google.com/p/data-race-test/wiki/ThreadSanitizer.
[2]
Sun studio 12: Thread analyzer user's guide. http://download.oracle.com/docs/cd/E19205-01/index.html.
[3]
Valgrind. http://www.valgrind.org.
[4]
A.Bessey, K. Block, B. Chelf, and et al. 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, 2010.
[5]
A.Ho, M. Fetterman, C. Clark, A. Warfield, and S. Hand. Practical taint-based protection using demand emulation. In EuroSys, pages 29--41, 2006.
[6]
A.Mairh, D. Barik, K. Verma, and D. Jena. Honeypot in network security: a survey. In ICCCS, pages 600--605, 2011.
[7]
A.Nistor, D. Marinov, and J. Torrellas. Light64: Lightweight hardware support for data race detection during systematic testing of parallel programs. In MICRO, pages 541--552, 2009.
[8]
A.Slowinska and H. Bos. Pointless tainting? evaluating the practicality of pointer tainting. In EuroSys, pages 61--74, 2009.
[9]
C.K.Luk, R. Cohn, R. Muth, and et al. Pin: Building customized program analysis tool with dynamic instrumentation. In PLDI, pages 190--200, 2005.
[10]
C.Rossbach, O. Hoffman, D. Porter, H. Ramadan, A. Bhadari, and E. Witchel. Txlinux: Using and managing hardware transactional memory in the operating system. In SOSP, pages 87--102, 2007.
[11]
D.Engler and K. Ashcraft. Racerx: Effective, static detection of race conditions and deadlocks. In SOSP, pages 237--252, 2003.
[12]
E.Posniansky and A. Schuster. Efficient on-the-fly race detection in multithreaded c++ programs. In PPoPP, pages 179--190, 2003.
[13]
F.Qin, C. Wang, Z. Li, and et al. Lift: A low-overhead practical information flow tracking system for detecting security attacks. In MICRO, pages 135--148, 2006.
[14]
Intel. Intel threading building blocks. http://threadingbuildingblocks.org.
[15]
Intel. Intel inspector xe 2011, 2011. http://software.intel.com/en-us/articles/intel-inspector-xe/.
[16]
A. Jannesari and W. F. Tichy. Identifying ad-hoc synchronization for enhanced race detection. In IPDPS, 2010.
[17]
J.D.Choi, K. Lee, A. Loginov, R. O'Callahan, V. Sarkar, and M. Sridharan. Efficient and precise data race detection for object oriented programs. In PLDI, pages 285--297, 2002.
[18]
J.Erickson, M. Musuvathi, S. Burckhardt, and K. Olynyk. Effective data-race detection for the kernel. In OSDI, 2010.
[19]
J.Newsome and D. Song. Dynamic taint analysisi for automaic detection, analysis, and signature generation of exploits on commodity software. In NDSS, 2005.
[20]
K.Poulsen. Tracking the blackout bug. http://www.securityfocus.com/news/8412, 2007.
[21]
K.Sen. Race directed random testing of concurrent programs. In PLDI, 2008.
[22]
L.Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21:558--565, 1978.
[23]
C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp:stanford transactional applications for multi-processing. In IISWC, 2008.
[24]
M.Kim, H. Kim, and C. K. Luk. Sd3: A scalable approach to dynamic data-dependence profiling. In MICRO, pages 535--546, 2010.
[25]
M.Naik, A. Aiken, and J. Whaley. Effective static race detection for java. In PLDI, pages 308--319, 2006.
[26]
M.Prvulovic. Cord: Cost-effective (and nearly overhead-free) order-recording and data race detection. In HPCA, pages 232--243, 2006.
[27]
M.Prvulovic and J. Torrellas. Reenact: Using thread-level speculation mechanisms to debug data races in multithreaded codes. In ISCA, 2003.
[28]
N.G.Leveson and C. S. Turner. Investigation of the terac-25 accidents. IEEE Computer, 26(7):18,41, 1993.
[29]
N.Sterling. Warlock: A static data race analysis tool. In USENIX Winter Technical Conference, pages 97--106, 1993.
[30]
P.Zhou, R. Teodorescu, and Y. Zhou. Hard: Hardwared assisted lock-set based data race detection. In HPCA, pages 121--132, 2007.
[31]
R.Chugh, J. Voung, R. Jhala, and S. Lerner. Dataflow analysis for concurrent programs using datarace detection. In PLDI, pages 316--326, 2008.
[32]
S.L.Min and J. D. Choi. An efficient cache-based access anomaly detection scheme. In ASPLOS, pages 235--244, 1991.
[33]
S.Narayanasamy, Z. Wang, J. Tigani, A. Edwards, and B. Calder. Automatically classifying benign and harmful data races using replay analysis. In PLDI, 2007.
[34]
S.Park, S. Lu, and Y. Zhou. Ctrigger: Exposing atomicity violation bugs from their hiding places. In ASPLOS, 2009.
[35]
S.Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A dynamic data race detector for multi-threaded programs. In SOSP, 1997.
[36]
S.T.King and P. M. Chen. Backtracking intrusions. In SOSP, 2003.
[37]
U.Aydonat and T. Abdelrahman. Hardware support for relaxed concurrency control in transactional memory system. In MICRO, pages 15--26, 2010.
[38]
W. Xiong, S. Park, J. Zhang, Y. Zhou, and Z. Ma. Ad hoc synchronization considered harmful. In OSDI, pages 163--176, 2010.
[39]
X.Zhang and R. Gupta. Whole execution traces. In MICRO, 2004.
[40]
Y.Yu, T. Rodeheffer, and W. Chen. Racetrack:efficient detection of data race conditions via adaptive tracking. In SOSP, pages 221--234, 2006.

Cited By

View all
  • (2024)Minimal Context-Switching Data Race Detection with Dataflow TrackingJournal of Computer Science and Technology10.1007/s11390-023-1569-739:1(211-226)Online publication date: 1-Feb-2024
  • (2021)SherLock: unsupervised synchronization-operation inferenceProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446754(314-328)Online publication date: 19-Apr-2021
  • (2017)DCatchACM SIGARCH Computer Architecture News10.1145/3093337.303773545:1(677-691)Online publication date: 4-Apr-2017
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MICRO-44: Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture
December 2011
519 pages
ISBN:9781450310536
DOI:10.1145/2155620
  • Conference Chair:
  • Carlo Galuzzi,
  • General Chair:
  • Luigi Carro,
  • Program Chairs:
  • Andreas Moshovos,
  • Milos Prvulovic
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 December 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency bug
  2. data race
  3. false positive

Qualifiers

  • Research-article

Funding Sources

Conference

MICRO-44
Sponsor:

Acceptance Rates

Overall Acceptance Rate 484 of 2,242 submissions, 22%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Minimal Context-Switching Data Race Detection with Dataflow TrackingJournal of Computer Science and Technology10.1007/s11390-023-1569-739:1(211-226)Online publication date: 1-Feb-2024
  • (2021)SherLock: unsupervised synchronization-operation inferenceProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446754(314-328)Online publication date: 19-Apr-2021
  • (2017)DCatchACM SIGARCH Computer Architecture News10.1145/3093337.303773545:1(677-691)Online publication date: 4-Apr-2017
  • (2017)DCatchACM SIGPLAN Notices10.1145/3093336.303773552:4(677-691)Online publication date: 4-Apr-2017
  • (2017)DCatchACM SIGOPS Operating Systems Review10.1145/3093315.303773551:2(677-691)Online publication date: 4-Apr-2017
  • (2017)DCatchProceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3037697.3037735(677-691)Online publication date: 4-Apr-2017
  • (2017)Enabling semantics to improve detection of data races and misuses of lock‐free data structuresConcurrency and Computation: Practice and Experience10.1002/cpe.411429:15Online publication date: 23-Apr-2017
  • (2015)Automated Classification of Data Races Under Both Strong and Weak Memory ModelsACM Transactions on Programming Languages and Systems10.1145/273411837:3(1-44)Online publication date: 22-May-2015
  • (2013)Synchronization identification through on-the-fly testProceedings of the 19th international conference on Parallel Processing10.1007/978-3-642-40047-6_3(4-15)Online publication date: 26-Aug-2013
  • (2012)Data races vs. data race bugsACM SIGPLAN Notices10.1145/2248487.215099747:4(185-198)Online publication date: 3-Mar-2012
  • 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