2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) 2019
DOI: 10.1109/saner.2019.8668017
|View full text |Cite
|
Sign up to set email alerts
|

Detecting Data Races Caused by Inconsistent Lock Protection in Device Drivers

Abstract: 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2

Citation Types

0
2
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
3
2

Relationship

0
5

Authors

Journals

citations
Cited by 5 publications
(2 citation statements)
references
References 43 publications
0
2
0
Order By: Relevance
“…Whereas Rehype focuses on performance and is purely dynamic-analysis-based, much of the existing work on concurrency analysis focuses on detecting concurrency-based bugs such as race conditions [1,2,7], deadlocks [1], and more-general thread-safety violations [3,6]. Most approaches are either based on static analysis [7], potentially with subsequent confirmation via dynamic analysis [14] or a hybrid approach [1], or use dynamic analysis such as execution-replay [10] or execution-modification [6] (such as injected delays) to trigger bugs.…”
Section: Concurrency Analysismentioning
confidence: 99%
See 1 more Smart Citation
“…Whereas Rehype focuses on performance and is purely dynamic-analysis-based, much of the existing work on concurrency analysis focuses on detecting concurrency-based bugs such as race conditions [1,2,7], deadlocks [1], and more-general thread-safety violations [3,6]. Most approaches are either based on static analysis [7], potentially with subsequent confirmation via dynamic analysis [14] or a hybrid approach [1], or use dynamic analysis such as execution-replay [10] or execution-modification [6] (such as injected delays) to trigger bugs.…”
Section: Concurrency Analysismentioning
confidence: 99%
“…While there are some primarily dynamic analysis-based approaches (e.g. Chen et al [2]), these also focus on bug detection. We hypothesise that concurrency analysis research currently focuses on bug detection for two reasons: 1) there is a clear, immediate, and measurable benefit -every additional bug detected is valuable; and 2) concurrency performance analysis is predicated on a low-overhead tracer that avoids distorting concurrent behaviour (whereas bug detection may use higher overhead dynamic analysis tools).…”
Section: Concurrency Analysismentioning
confidence: 99%