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 条
  • [1] LOCKSMITH: Context-sensitive correlation analysis for race detection
    Pratikakis, Polyvios
    Foster, Jeffrey S.
    Hicks, Michael
    ACM SIGPLAN NOTICES, 2006, 41 (06) : 320 - 331
  • [2] Accurate Static Data Race Detection for C
    Sales, Emerson
    Inverso, Omar
    Tuosto, Emilio
    FORMAL METHODS, PT I, FM 2024, 2025, 14933 : 443 - 462
  • [3] Effective static race detection for Java
    Computer Science Department, Stanford University, United States
    Proc ACM SIGPLAN Conf Program Lang Des Implementation PLDI, (308-319):
  • [4] RACERD: Compositional Static Race Detection
    Blackshear, Sam
    Gorogiannis, Nikos
    O'Hearn, Peter W.
    Sergey, Ilya
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2 (02):
  • [5] Static Detection of Race Conditions in Erlang
    Christakis, Maria
    Sagonas, Konstantinos
    PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES, PROCEEDINGS, 2010, 5937 : 119 - 133
  • [6] Static Race Detection for Periodic Programs
    Suresh, Varsha P.
    Pai, Rekha
    D'Souza, Deepak
    D'Souza, Meenakshi
    Chakrabarti, Sujit Kumar
    PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2022, 2022, 13240 : 290 - 316
  • [7] Conditional must not aliasing for static race detection
    Naik, Mayur
    Aiken, Alex
    ACM SIGPLAN NOTICES, 2007, 42 (01) : 327 - 338
  • [8] Effective static race detection for Java']Java
    Naik, Mayur
    Aiken, Alex
    Whaley, John
    ACM SIGPLAN NOTICES, 2006, 41 (06) : 308 - 319
  • [9] Conditional Must Not Aliasing for Static Race Detection
    Naik, Mayur
    Aiken, Alex
    CONFERENCE RECORD OF POPL 2007: THE 34TH ACM SIGPLAN SIGACT SYMPOSIUM ON PRINCIPLES OF PROGAMMING LANGUAGES, 2007, : 327 - 338
  • [10] BIGFOOT: Static Check Placement for Dynamic Race Detection
    Rhodes, Dustin
    Flanagan, Cormac
    Freund, Stephen N.
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 141 - 156