ETRI-Knowledge Sharing Plaform

KOREAN
논문 검색
Type SCI
Year ~ Keyword

Detail

Journal Article Efficient Noise Injection for Exposing Hidden Data Races
Cited 1 time in scopus Share share facebook twitter linkedin kakaostory
Authors
Misun Yu, Yu-Seung Ma, Doo-Hwan Bae
Issue Date
2020-01
Citation
Journal of Supercomputing, v.76, no.1, pp.292-323
ISSN
0920-8542
Publisher
Springer
Language
English
Type
Journal Article
DOI
https://dx.doi.org/10.1007/s11227-019-03031-0
Abstract
The happens-before (HB) relation is widely used to precisely detect data races, which are among the major causes of concurrency bugs. However, the HB relation is sensitive to thread interleaving; thus, hidden races that can be revealed in other thread interleavings may remain despite the repeated running of a program with an HB detector. In this paper, we propose a noise injection-based race detection technique (RaceInducer) that can expose and detect hidden races by using the runtime HB analysis result to determine the noise injection instants. RaceInducer delays a thread execution after the occurrence of the first no-lock non-racing accesses of three types (read-exclusive, write-exclusive, and read-shared) to a shared variable during a precise HB detection (FastTrack). Using this technique, RaceInducer can efficiently disturb the normal locking sequences between two threads that generate HB edges hiding data races. We implemented RaceInducer on the RoadRunner instrumentation framework for Java and evaluated its detection capability and runtime overheads on 12 real-world benchmark programs. The evaluation results showed that RaceInducer generated a lower runtime overhead compared to random noise injection that randomly injected noise for no-lock non-racing accesses and can detect more races with the same noise strength. RaceInducer generates particularly lower runtime overhead than the random noise injection for large programs that generates a high number of shared-memory accesses. In addition, we experimentally demonstrated that RaceInducer incurred lower runtime overheads than a current hidden-race detector (DrFinder) for programs with a relatively large number of locking operations.
KSP Keywords
Data race, HB analysis, Happens-before, Hidden data, Memory Access, Noise injection, Noise strength, Random Noise, Real-world, Runtime overhead, Shared Memory