2014
DOI: 10.1109/tse.2014.2301725
|View full text |Cite
|
Sign up to set email alerts
|

Magiclock: Scalable Detection of Potential Deadlocks in Large-Scale Multithreaded Programs

Abstract: We present Magiclock, a novel potential deadlock detection technique by analyzing execution traces (containing no deadlock occurrence) of large-scale multithreaded programs. Magiclock iteratively eliminates removable lock dependencies before potential deadlock localization. It divides lock dependencies into thread specific partitions, consolidates equivalent lock dependencies, and searches over the set of lock dependency chains without the need to examine any duplicated permutations of the same lock dependency… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
19
0

Year Published

2015
2015
2019
2019

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 45 publications
(19 citation statements)
references
References 34 publications
0
19
0
Order By: Relevance
“…Similar to iGoodLock, MulticoreSDK addresses prediction of deadlocks by searching over the lock‐order graph. In comparison with iGoodLock and MulticoreSDK, MagicLock improved the search on the lock‐order graph using a forecast mechanism.…”
Section: Related Workmentioning
confidence: 99%
“…Similar to iGoodLock, MulticoreSDK addresses prediction of deadlocks by searching over the lock‐order graph. In comparison with iGoodLock and MulticoreSDK, MagicLock improved the search on the lock‐order graph using a forecast mechanism.…”
Section: Related Workmentioning
confidence: 99%
“…DeadlockFuzzer [21] use a fuzzying technique to search for deadlocking executions. Multicore SDK [27] tries to reduce the size of lock graphs by clustering locks; and Magiclock [10] implements significant improvements on the cycle detection algorithms. Helgrind [1] is a popular open source dynamic deadlock detection tool, and there are many commercial implementations of dynamic deadlock detection algorithms.…”
Section: Dynamic Toolsmentioning
confidence: 99%
“… others (e.g., memory read and write) An execution trace (or a trace) is a sequence of events. A deadlock occurs if a set of threads wait mutually for a set of locks that are held by other threads in the same set [15] [32]. For example, Figure 1 shows an example program with a deadlock D1.…”
Section: Preliminaries and Motivations 21 Events And Deadlocksmentioning
confidence: 99%
“…A deadlock occurs when a set of threads are holding some locks and are waiting for other locks held by the threads in the same set [8][31] [32]. There are both static [45][56] [61] and dynamic approaches [8] [11] [15][31] [46][53] to detect deadlocks. However, static approaches may report false positives as it is difficult to infer whether two events may occur concurrently [31].…”
Section: Introductionmentioning
confidence: 99%