返回
ThreadMonitor: Low-Overhead Data Race Detection Using Intel Processor Trace
DOI:10.1002/cpe.70517.png)
摘要
En 中文
数据竞争是发现难度最大的多线程错误之一,因其具有非确定性。多线程编程的日益普及以及这一现状促使了对实用化自动数据竞争检测的需求。在此背景下,与静态工具相比,动态数据竞争检测器因其更高的准确性和可扩展性而受到更多关注。然而,当前最先进的动态数据竞争检测器无法在许多实际测试场景中使用,因为它们会导致显著的性能下降和内存开销。值得注意的是,ThreadSanitizer(TSan)作为clang和gcc编译器中的默认动态数据竞争检测器,据报道通常会产生-的减速和-的内存开销,这在许多工业应用中是不可接受的。为解决此问题,本文介绍了ThreadMonitor(TMon),一种低开销的后期分析数据竞争检测器,适用于使用Pthread库的多线程C/C++程序。运行时,TMon利用Intel处理器跟踪(Intel PT)这一非侵入式硬件特性,追踪检测数据竞争所需的信息(即共享内存访问和线程间的时序约束)。随后,其后期分析器检查收集的跟踪数据,以确定被跟踪的程序执行是否表现出数据竞争,执行与TSan运行时类似的验证。通过在其后期分析器中引入算法改进,TMon能够比TSan实现更高的数据竞争检测覆盖率。TMon没有直接的数据内存开销,产生最小的指令内存开销,并导致非常小的性能下降,使其成为资源受限测试环境中的理想选择。
Keyword:
data race
Intel Processor Trace (Intel PT)
low-overhead monitoring
multithreading
runtime verification
shared memory
timing constraints
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

