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:
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