Precise and efficient atomicity violation detection for interrupt-driven programs via staged path pruning
Chao Li, Rui Chen, Boxiang Wang, Tingting Yu, Dongdong Gao, Mengfei Yang
Abstract
Interrupt-driven programs are widely used in aerospace and other safety-critical areas. However, uncertain interleaving execution of interrupts may cause concurrency bugs, which could result in serious safety problems. Most of the previous researches tackling the detection of interrupt concurrency bugs focus on data races, that are usually benign as shown in empirical studies. Some studies focus on pattern-based atomicity violations that are most likely harmful. However, they cannot achieve simultaneous high precision and scalability. This paper presents intAtom, a precise and efficient static detection technique for interrupt atomicity violations, described by access interleaving pattern. The key point is that it eliminates false violations by staged path pruning with constraint solving. It first identifies all the violation candidates using data flow analysis and access interleaving pattern matching. intAtom then analyzes the path feasibility between two consecutive accesses in preempted task/interrupt, in order to recognize the atomicity intention of developers, with the help of which it filters out some candidates. Finally, it performs a modular path pruning by constructing symbolic summary and representative preemption points selection to eliminate the infeasible path in concurrent context efficiently. All the path feasibility checking processes are based on sparse value-flow analysis, which makes intAtom scalable. intAtom is evaluated on a benchmark and 6 real-world aerospace embedded programs. The experimental results show that intAtom reduces the false positive by 72% and improves the detection speed by 3 times, compared to the state-of-the-art methods. Furthermore, it can finish analyzing the real-world aerospace embedded software very fast with an average FP rate of 19.6%, while finding 19 bugs that were confirmed by developers.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 40ee923f-30d7-41b1-9c90-210908366ce0Cited by top-tier papers1
Ask how each one uses itRelated papers
- Detecting Atomicity Violations in Interrupt-Driven Programs via Interruption Points Selecting and Delayed ISR-TriggeringBin Yu, Cong Tian, Hengrui Xing, Zuchao Yang et al.FSE 2023 · 4 citations
- An Empirical Study on Concurrency Bugs in Interrupt-Driven Embedded SoftwareChao Li, Rui Chen, Boxiang Wang, Zhixuan Wang et al.ISSTA 2023 · 10 citations
- PASAN: Detecting Peripheral Access Concurrency Bugs within Bare-Metal Embedded ApplicationsTaegyu Kim, Vireshwar Kumar, Junghwan Rhee, Jizhou Chen et al.USENIX Security 2021 · 21 citations
- Reorder Pointer Flow in Sound Concurrency Bug PredictionYuqi Guo, Shihao Zhu, Yan Cai, Liang He et al.ICSE 2024 · 1 citation
- Canary: practical static detection of inter-thread value-flow bugsYuandao Cai, Peisen Yao, Charles ZhangPLDI 2021 · 25 citations
