TY - JOUR
T1 - BIFER
T2 - a biphasic trace filter approach to scalable prediction of concurrency errors
AU - Chang, Xi
AU - Zhang, Zhuo
AU - Zhang, Peng
AU - Xue, Jianxin
AU - Zhao, Jianjun
N1 - Publisher Copyright:
© 2015, Higher Education Press and Springer-Verlag Berlin Heidelberg.
PY - 2015/10/20
Y1 - 2015/10/20
N2 - Predictive trace analysis (PTA), a static trace analysis technique for concurrent programs, can offer powerful capability support for finding concurrency errors unseen in a previous program execution. Existing PTA techniques always face considerable challenges in scaling to large traces which contain numerous critical events. One main reason is that an analyzed trace includes not only redundant memory accessing events and threads that cannot contribute to discovering any additional errors different from the found candidate ones, but also many residual synchronization events which still affect PTA to check whether these candidate ones are feasible or not even after removing the redundant events. Removing them from the trace can significantly improve the scalability of PTA without affecting the quality of the PTA results. In this paper, we propose a biphasic trace filter approach, BIFER in short, to filter these redundant events and residual events for improving the scalability of PTA to expose general concurrency errors. In addition, we design a model which indicates the lock history and the happens-before history of each thread with two kinds of ways to achieve the efficient filtering. We implement a prototypical tool BIFER for Java programs on the basis of a predictive trace analysis framework. Experiments show that BIFER can improve the scalability of PTA during the process of analyzing all of the traces.
AB - Predictive trace analysis (PTA), a static trace analysis technique for concurrent programs, can offer powerful capability support for finding concurrency errors unseen in a previous program execution. Existing PTA techniques always face considerable challenges in scaling to large traces which contain numerous critical events. One main reason is that an analyzed trace includes not only redundant memory accessing events and threads that cannot contribute to discovering any additional errors different from the found candidate ones, but also many residual synchronization events which still affect PTA to check whether these candidate ones are feasible or not even after removing the redundant events. Removing them from the trace can significantly improve the scalability of PTA without affecting the quality of the PTA results. In this paper, we propose a biphasic trace filter approach, BIFER in short, to filter these redundant events and residual events for improving the scalability of PTA to expose general concurrency errors. In addition, we design a model which indicates the lock history and the happens-before history of each thread with two kinds of ways to achieve the efficient filtering. We implement a prototypical tool BIFER for Java programs on the basis of a predictive trace analysis framework. Experiments show that BIFER can improve the scalability of PTA during the process of analyzing all of the traces.
UR - http://www.scopus.com/inward/record.url?scp=84946532390&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84946532390&partnerID=8YFLogxK
U2 - 10.1007/s11704-015-4334-4
DO - 10.1007/s11704-015-4334-4
M3 - Article
AN - SCOPUS:84946532390
SN - 2095-2228
VL - 9
SP - 944
EP - 955
JO - Frontiers of Computer Science
JF - Frontiers of Computer Science
IS - 6
ER -