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

Authors Info & Claims
Published:03 December 2011Publication 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.Google ScholarGoogle Scholar
  2. Sun studio 12: Thread analyzer user's guide. http://download.oracle.com/docs/cd/E19205-01/index.html.Google ScholarGoogle Scholar
  3. Valgrind. http://www.valgrind.org.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A.Mairh, D. Barik, K. Verma, and D. Jena. Honeypot in network security: a survey. In ICCCS, pages 600--605, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A.Slowinska and H. Bos. Pointless tainting? evaluating the practicality of pointer tainting. In EuroSys, pages 61--74, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D.Engler and K. Ashcraft. Racerx: Effective, static detection of race conditions and deadlocks. In SOSP, pages 237--252, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E.Posniansky and A. Schuster. Efficient on-the-fly race detection in multithreaded c++ programs. In PPoPP, pages 179--190, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Intel. Intel threading building blocks. http://threadingbuildingblocks.org.Google ScholarGoogle Scholar
  15. Intel. Intel inspector xe 2011, 2011. http://software.intel.com/en-us/articles/intel-inspector-xe/.Google ScholarGoogle Scholar
  16. A. Jannesari and W. F. Tichy. Identifying ad-hoc synchronization for enhanced race detection. In IPDPS, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J.Erickson, M. Musuvathi, S. Burckhardt, and K. Olynyk. Effective data-race detection for the kernel. In OSDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J.Newsome and D. Song. Dynamic taint analysisi for automaic detection, analysis, and signature generation of exploits on commodity software. In NDSS, 2005.Google ScholarGoogle Scholar
  20. K.Poulsen. Tracking the blackout bug. http://www.securityfocus.com/news/8412, 2007.Google ScholarGoogle Scholar
  21. K.Sen. Race directed random testing of concurrent programs. In PLDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L.Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21:558--565, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. C. C. Minh, J. Chung, C. Kozyrakis, and K. Olukotun. Stamp:stanford transactional applications for multi-processing. In IISWC, 2008.Google ScholarGoogle Scholar
  24. M.Kim, H. Kim, and C. K. Luk. Sd3: A scalable approach to dynamic data-dependence profiling. In MICRO, pages 535--546, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M.Naik, A. Aiken, and J. Whaley. Effective static race detection for java. In PLDI, pages 308--319, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M.Prvulovic. Cord: Cost-effective (and nearly overhead-free) order-recording and data race detection. In HPCA, pages 232--243, 2006.Google ScholarGoogle ScholarCross RefCross Ref
  27. M.Prvulovic and J. Torrellas. Reenact: Using thread-level speculation mechanisms to debug data races in multithreaded codes. In ISCA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. N.G.Leveson and C. S. Turner. Investigation of the terac-25 accidents. IEEE Computer, 26(7):18,41, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. N.Sterling. Warlock: A static data race analysis tool. In USENIX Winter Technical Conference, pages 97--106, 1993.Google ScholarGoogle Scholar
  30. P.Zhou, R. Teodorescu, and Y. Zhou. Hard: Hardwared assisted lock-set based data race detection. In HPCA, pages 121--132, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. R.Chugh, J. Voung, R. Jhala, and S. Lerner. Dataflow analysis for concurrent programs using datarace detection. In PLDI, pages 316--326, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S.L.Min and J. D. Choi. An efficient cache-based access anomaly detection scheme. In ASPLOS, pages 235--244, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. S.Park, S. Lu, and Y. Zhou. Ctrigger: Exposing atomicity violation bugs from their hiding places. In ASPLOS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. S.T.King and P. M. Chen. Backtracking intrusions. In SOSP, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. U.Aydonat and T. Abdelrahman. Hardware support for relaxed concurrency control in transactional memory system. In MICRO, pages 15--26, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. W. Xiong, S. Park, J. Zhang, Y. Zhou, and Z. Ma. Ad hoc synchronization considered harmful. In OSDI, pages 163--176, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. X.Zhang and R. Gupta. Whole execution traces. In MICRO, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Y.Yu, T. Rodeheffer, and W. Chen. Racetrack:efficient detection of data race conditions via adaptive tracking. In SOSP, pages 221--234, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

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

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • 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

          Copyright © 2011 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 3 December 2011

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate484of2,242submissions,22%

          Upcoming Conference

          MICRO '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader