ReCBuLC: Reproducing concurrency bugs using local clocks

Xiang Yuan, Chenggang Wu, Zhenjiang Wang, Jianjun Li, Pen Chung Yew, Jeff Huang, Xiaobing Feng, Yanyan Lan, Yunji Chen, Yong Guan

Research output: Chapter in Book/Report/Conference proceedingConference contribution

13 Scopus citations

Abstract

Multi-threaded programs play an increasingly important role in current multi-core environments. Exposing concurrency bugs and debugging such multi-threaded programs have become quite challenging due to their inherent non-determinism. In order to eliminate such non-determinism, many approaches such as record-and-replay and other similar bug reproducing systems have been proposed. However, those approaches often suffer significant performance degradation because they require a large amount of recorded information and/or long analysis and replay time. In this paper, we propose an effective approach, ReCBuLC, to take advantage of the hardware clocks available on modern processors. The key idea is to reduce the recording overhead and analyzing events' global order by using time stamps recorded in each thread. Those timestamps are used to determine the global orders of shared accesses. To avoid the large overhead incurred in accessing system-wide global clock, we opt to use local per-core clocks that incur much less access overhead. We then propose techniques to resolve differences among local clocks and obtain an accurate global event order. By using per-core clocks, state-of-the-art bug reproducing systems such as PRES and CLAP can reduce the recording overheads by 1% 85%, and the analysis time by 84.66% 99.99%, respectively.

Original languageEnglish (US)
Title of host publicationProceedings - 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, ICSE 2015
PublisherIEEE Computer Society
Pages824-834
Number of pages11
ISBN (Electronic)9781479919345
DOIs
StatePublished - Aug 12 2015
Event37th IEEE/ACM International Conference on Software Engineering, ICSE 2015 - Florence, Italy
Duration: May 16 2015May 24 2015

Publication series

NameProceedings - International Conference on Software Engineering
Volume1
ISSN (Print)0270-5257

Other

Other37th IEEE/ACM International Conference on Software Engineering, ICSE 2015
CountryItaly
CityFlorence
Period5/16/155/24/15

Keywords

  • Bug reproducing
  • Concurrency
  • Local clock

Fingerprint Dive into the research topics of 'ReCBuLC: Reproducing concurrency bugs using local clocks'. Together they form a unique fingerprint.

  • Cite this

    Yuan, X., Wu, C., Wang, Z., Li, J., Yew, P. C., Huang, J., Feng, X., Lan, Y., Chen, Y., & Guan, Y. (2015). ReCBuLC: Reproducing concurrency bugs using local clocks. In Proceedings - 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, ICSE 2015 (pp. 824-834). [7194629] (Proceedings - International Conference on Software Engineering; Vol. 1). IEEE Computer Society. https://doi.org/10.1109/ICSE.2015.94