使用'perf trace命令'到TSX中止的特殊线程

时间:2017-12-04 02:23:55

标签: perf tsx

我尝试使用'perf trace'命令在特殊线程中跟踪tsx abort。但我得到了错误的论点。我认为可能正确的所有命令都在下面。

perf trace --pid 24265 --event tx-abort

perf trace --pid 24265 --event {tx-abort}

perf trace --pid 24265 --event {'tx-abort'}

perf trace --pid {24265} - 事件tx-abort

perf trace --pid {24265} --event {tx-abort}

perf trace --pid {24265} --event {'tx-abort'}

perf trace --pid {'24265'} - 事件tx-abort

perf trace --pid {'24265'} - event {tx-abort}

perf trace --pid {'24265'} - event {'tx-abort'}

所有错误后果都是“解析要追踪的目标的问题,检查您的选项”。 有没有办法让perf跟踪按预期运行?

1 个答案:

答案 0 :(得分:0)

问题不是参数语法,你的第一行应该没问题。首先,检查tx-abort是否列出perf list,以查看系统是否通常支持perf trace。然后可能会发生错误,因为指定的pid不存在。

TSX事件是 PMU事件。与系统调用或跟踪点相反,不是单个事件在软件中进行检测,但在性能监视单元中有一个硬件计数器,它计算这些事件并在一定量的事件后触发中断。对每个事件采取样本通常不适用于PMU事件。我怀疑这就是为什么它不适用于最初用于系统调用的perf trace,即使文档对于支持哪种类型的事件有点模糊。

注意我可以重现它不起作用,但我得到一个“无效的参数”。 perf record不支持PMU事件,这是我的一点推测。

英特尔在analyzing TSX with perf上提供了大量文档,其中提供了有关如何将{tx事件与USER_CONTACTS(user_id, contact_id)一起使用的示例和说明。