Detecting Data Races Caused by Inconsistent Lock Protection in Device Drivers
Autor: | Qiu-Liang Chen, Jia-Ju Bai, Julia Lawall, Zu-Ming Jiang, Shi-Min Hu |
---|---|
Přispěvatelé: | Tsinghua University [Beijing] (THU), Well Honed Infrastructure Software for Programming Environments and Runtimes ( Whisper), Inria de Paris, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-LIP6, Sorbonne Université (SU)-Centre National de la Recherche Scientifique (CNRS)-Sorbonne Université (SU)-Centre National de la Recherche Scientifique (CNRS), This work was supported by the Natural Science Foundation of China (project number 61872210), Well Honed Infrastructure Software for Programming Environments and Runtimes (Whisper), Lawall, Julia |
Jazyk: | angličtina |
Rok vydání: | 2019 |
Předmět: |
020203 distributed computing
Record locking Computer science [INFO.INFO-SE] Computer Science [cs]/Software Engineering [cs.SE] 020207 software engineering 02 engineering and technology Data races [INFO.INFO-SE]Computer Science [cs]/Software Engineering [cs.SE] [INFO] Computer Science [cs] computer.software_genre Inconsistent lock protection Variable (computer science) [INFO.INFO-OS] Computer Science [cs]/Operating Systems [cs.OS] Device driver 0202 electrical engineering electronic engineering information engineering Operating system Concurrent computing [INFO]Computer Science [cs] Runtime analysis [INFO.INFO-OS]Computer Science [cs]/Operating Systems [cs.OS] computer |
Zdroj: | SANER 2019-26th IEEE International Conference on Software Analysis, Evolution and Reengineering SANER 2019-26th IEEE International Conference on Software Analysis, Evolution and Reengineering, Feb 2019, Hangzhou, China SANER |
Popis: | International audience; Data races are often hard to detect in device drivers, due to the non-determinism of concurrent execution. According to our study of Linux driver patches that fix data races, more than 38% of patches involve a pattern that we call inconsistent lock protection. Specifically, if a variable is accessed within two concurrently executed functions, the sets of locks held around each access are disjoint, at least one of the locksets is non-empty, and at least one of the involved accesses is a write, then a data race may occur.In this paper, we present a runtime analysis approach, named DILP, to detect data races caused by inconsistent lock protection in device drivers. By monitoring driver execution, DILP collects the information about runtime variable accesses and executed functions. Then after driver execution, DILP analyzes the collected information to detect and report data races caused by inconsistent lock protection. We evaluate DILP on 12 device drivers in Linux 4.16.9, and find 25 real data races. |
Databáze: | OpenAIRE |
Externí odkaz: |