TY - JOUR
T1 - Davida
T2 - A Decentralization Approach to Localizing Transaction Sequences for Debugging Transactional Atomicity Violations
AU - Ma, Xiaoxue
AU - Ashraf, Imran
AU - Chan, W. K.
N1 - Publisher Copyright:
© 1963-2012 IEEE.
PY - 2023/6/1
Y1 - 2023/6/1
N2 - Atomicity is a desirable property for multithreaded programs. In such programs, a transaction is an execution of an atomic code region that may contain memory accesses on an arbitrary number of shared variables. When transactions are not conflicting with one another in a trace, they greatly simplify the reasoning of the program correctness. If a transaction incurs an atomicity violation in a trace, developers have to debug the code, but this is challenging. To achieve practical runtime performances, existing dynamic techniques for detecting such atomicity violations face a challenge: They are designed for either detecting all such atomicity violations without the capability of localizing the corresponding cross-thread transaction sequences or deliberately missing some atomicity violations in the trade of localizing some of them to support their atomicity violation detection. In this article, we propose Davida, a novel technique to address this problem. Davida efficiently tracks selective transactions and cross-thread dependency sequences over transactions reachable from the currently active transactions of all the threads in a decentralized manner. We prove that Davida precisely accomplishes every atomicity violation in a trace with an actual sequence of transactions triggering the violation. The experimental results on 15 subjects showed that Davida outperformed Velodrome, the previous graph-based state-of-the-art technique, in both performance and completeness.
AB - Atomicity is a desirable property for multithreaded programs. In such programs, a transaction is an execution of an atomic code region that may contain memory accesses on an arbitrary number of shared variables. When transactions are not conflicting with one another in a trace, they greatly simplify the reasoning of the program correctness. If a transaction incurs an atomicity violation in a trace, developers have to debug the code, but this is challenging. To achieve practical runtime performances, existing dynamic techniques for detecting such atomicity violations face a challenge: They are designed for either detecting all such atomicity violations without the capability of localizing the corresponding cross-thread transaction sequences or deliberately missing some atomicity violations in the trade of localizing some of them to support their atomicity violation detection. In this article, we propose Davida, a novel technique to address this problem. Davida efficiently tracks selective transactions and cross-thread dependency sequences over transactions reachable from the currently active transactions of all the threads in a decentralized manner. We prove that Davida precisely accomplishes every atomicity violation in a trace with an actual sequence of transactions triggering the violation. The experimental results on 15 subjects showed that Davida outperformed Velodrome, the previous graph-based state-of-the-art technique, in both performance and completeness.
KW - Atomicity violation detection
KW - decentralized app-roach
KW - dynamic analysis
KW - localization of transaction sequences
UR - http://www.scopus.com/inward/record.url?scp=85131758130&partnerID=8YFLogxK
U2 - 10.1109/TR.2022.3176680
DO - 10.1109/TR.2022.3176680
M3 - Article
AN - SCOPUS:85131758130
SN - 0018-9529
VL - 72
SP - 808
EP - 826
JO - IEEE Transactions on Reliability
JF - IEEE Transactions on Reliability
IS - 2
ER -