LOCKSMITH: Practical Static Race Detection for C

被引:74
|
作者
Pratikakis, Polyvios [1 ]
Foster, Jeffrey S. [1 ]
Hicks, Michael [1 ]
机构
[1] Univ Maryland, College Pk, MD 20742 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2011年 / 33卷 / 01期
关键词
Languages; Verification; Reliability; Algorithms; Data race; race detection; static analysis; context sensitivity; correlation inference; sharing analysis; contextual effects; Locksmith; INFERENCE;
D O I
10.1145/1889997.1890000
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
LOCKSMITH is a static analysis tool for automatically detecting data races in C programs. In this article, we describe each of LOCKSMITH's component analyses precisely, and present systematic measurements that isolate interesting trade-offs between precision and efficiency in each analysis. Using a benchmark suite comprising stand-alone applications and Linux device drivers totaling more than 200,000 lines of code, we found that a simple no-worklist strategy yielded the most efficient interprocedural dataflow analysis; that our sharing analysis was able to determine that most locations are thread-local, and therefore need not be protected by locks; that modeling C structs and void pointers precisely is key to both precision and efficiency; and that context sensitivity yields a much more precise analysis, though with decreased scalability. Put together, our results illuminate some of the key engineering challenges in building LOCKSMITH and data race detection analyses in particular, and constraint-based program analyses in general.
引用
收藏
页数:55
相关论文
共 50 条
  • [31] Effective Techniques for Static Race Detection in Java']Java Parallel Loops
    Radoi, Cosmin
    Dig, Danny
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2015, 24 (04)
  • [32] Fast and accurate static data-race detection for concurrent programs
    Kahlon, Vineet
    Yang, Yu
    Sankaranarayanan, Sriram
    Gupta, Aarti
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2007, 4590 : 226 - +
  • [33] Static Data Race Detection for Java Programs With Dynamic Class Loading
    Yoshiura, Noriaki
    Wei, Wei
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2014, 8729 : 161 - 173
  • [34] Dynamic Race Detection for C++11
    Lidbury, Christopher
    Donaldson, Alastair F.
    ACM SIGPLAN NOTICES, 2017, 52 (01) : 443 - 457
  • [35] C-MOS CHALLENGES BIPOLARS IN STATIC-RAM RACE
    BATEMAN, B
    YOUNG, K
    HARTRANFT, M
    MOLITOR, K
    ELECTRONICS, 1984, 57 (07): : 125 - 128
  • [36] Digitized locksmith forensics: Automated detection and segmentation of toolmarks on highly structured surfaces
    Clausing, Eric
    Vielhauer, Claus
    MEDIA WATERMARKING, SECURITY, AND FORENSICS 2014, 2014, 9028
  • [37] When threads meet events: Efficient and precise static race detection with origins
    Liu, Bozhen
    Liu, Peiming
    Li, Yanze
    Tsai, Chia-Che
    Da Silva, Dilma
    Huang, Jeff
    Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2021, : 725 - 739
  • [38] OpenMP aware MHP Analysis for Improved Static Data-Race Detection
    Bora, Utpal
    Vaishay, Shraiysh
    Joshi, Saurabh
    Upadrasta, Ramakrishna
    PROCEEDINGS OF THE SEVENTH ANNUAL WORKSHOP ON THE LLVM COMPILER INFRASTRUCTURE IN HPC (LLVM-HPC2021), 2021, : 1 - 11
  • [39] When Threads Meet Events: Efficient and Precise Static Race Detection with Origins
    Liu, Bozhen
    Liu, Peiming
    Li, Yanze
    Tsai, Chia-Che
    Da Silva, Dilma
    Huang, Jeff
    PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 725 - 739
  • [40] Static Application-Level Race Detection in STM Haskell using Contracts
    Demeyer, Romain
    Vanhoof, Wim
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2013, (137): : 115 - 134