面向生产环境的动态数据竞争监视器 HardRace
软件工程
2024-12-20 v2
摘要
数据竞争是多线程程序中的关键问题,可能导致不可预测的灾难性问题且难以诊断。尽管进行了大量内部测试,数据竞争仍可能逃到部署软件并在生产运行中显现。现有方法要么导致不可接受的运行时开销,要么检测能力不完整。本文引入了 HardRace,一种用于检测数据竞争的监视器,在保持足够低的运行时开销和高检测能力的同时,能够实时检测数据竞争。HardRace 首先采用严谨的静态分析来确定与数据竞争相关的最小内存访问集合。随后,它利用硬件跟踪指令,即 Intel PTWRITE,仅在执行期间选择性记录这些内存访问和线程同步事件,从而实现极低的运行时开销。给定跟踪数据后,HardRace 执行标准的数据竞争检测算法,以及时报告生产环境中发生的潜在竞争。实验评估表明,HardRace 在运行时开销和检测能力方面均优于 ProRace 和 Kard 等最新工具——HardRace 能够在真实世界应用程序中检测所有类型的数据竞争,同时保持可忽略的开销,平均不足 2%。
关键词
引用
@article{arxiv.2410.18412,
title = {HardRace: A Dynamic Data Race Monitor for Production Use},
author = {Xudong Sun and Zhuo Chen and Jingyang Shi and Yiyu Zhang and Peng Di and Jianhua Zhao and Xuandong Li and Zhiqiang Zuo},
journal= {arXiv preprint arXiv:2410.18412},
year = {2024}
}