一句话:提出 Kard,利用每线程内存保护实现低开销动态数据竞争检测,避免昂贵编译器插桩。
多线程程序中的数据竞争缺陷难以发现,动态检测是有前景的方向。然而,面向 commodity hardware 的现有动态检测器通常依赖昂贵的编译器内存访问插桩,导致开销过高,难以在所有开发与测试场景中使用。本文提出 Kard,一种基于每线程内存保护的轻量级数据竞争检测方法,用内存保护机制替代或减少编译器插桩来监控线程的内存访问,从而降低动态检测的运行时开销。摘要未给出具体实现细节与实验数据;其贡献定位是让 commodity hardware 上的动态数据竞争检测更实用,适用于更广泛的开发与测试流程。
Finding data race bugs in multi-threaded programs has proven challenging. A promising direction is to use dynamic detectors that monitor the program’s execution for data races. However, despite extensive work on dynamic data race detection, most proposed systems for commodity hardware incur prohibitive overheads due to expensive compiler instrumentation of memory accesses; hence, they are not efficient enough to be used in all development and testing settings.
DOI 原文 ·
@inproceedings{paperbot6152,
title = {Kard: lightweight data race detection with per-thread memory protection},
author = {Adil Ahmad and Sangho Lee and Pedro Fonseca and Byoungyoung Lee},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446727}
}