Detecting Atomicity Violations in Interrupt-Driven Programs Via Interruption Points Selecting and Delayed ISR-Triggering

Bin Yu,Cong Tian,Hengrui Xing,Zuchao Yang,Jie Su,Xu Lu,Jiyu Yang,Liang Zhao,Xiaofeng Li,Zhenhua Duan
DOI: https://doi.org/10.1145/3611643.3616276
2023-01-01
Abstract:Interrupt-driven programs have been widely used in safety-critical areas such as aerospace and embedded systems. However, uncertain interleaving execution of interrupt service routines (ISRs) usually causes concurrency bugs. Specifically, when one or more ISRs attempt to preempt a sequence of instructions which are expected to be atomic, a kind of concurrency bugs namely atomicity violation may occur, and it is challenging to find this kind of bugs precisely and efficiently. In this paper, we propose a static approach for detecting atomicity violations in interrupt-driven programs. First, the program model is constructed with interruption points being selected to determine the possibly influenced ISRs. After that, reachability computation is conducted to build up a whole abstract reachability tree, and a delayed ISR-triggering strategy is employed to reduce the state space. Meanwhile, unserializable interleaving patterns are recognized to achieve the goal of atomicity violation detection. The approach has been implemented as a configurable tool namely CPA4AV. Extensive experiments show that CPA4AV is much more precise than the relative tools available with little extra time overhead. In addition, more complex situations can be dealt with CPA4AV.
What problem does this paper attempt to address?