我正在使用 Linux Perf 工具来监视基准测试运行的某些事件。在事件列表参数-e中,我添加了cycles-t和cycles-ct,因为我想捕获它们。但当我运行 perf 时,它们总是返回 0。
例如,我正在使用以下命令:
perf stat -e cycles-ct dd if=/dev/zero of=/dev/numm count=10000
这是输出
10000+0 records in
10000+0 records out
5120000 bytes (5.1 MB) copied, 0.0318331 s, 161 MB/s
Performance counter stats for 'dd if=/dev/zero of=/dev/numm count=10000':
31,957,327 cycles-ct
0 cpu/cycles-ct/
0.035254063 seconds time elapsed
对此有什么想法吗?我需要获取 cpu/cycles-ct 值。 (我使用的是 Fedora 20。尝试更新 perf 实用程序,它没有解决我的问题。)
另外,如果我运行这个命令
perf stat -T -a sleep 1
我得到的输出如下:
Performance counter stats for 'system wide':
8022.927913 task-clock (msec) # 8.011 CPUs utilized
104842699 instructions # 0.87 insns per cycle [100.00%]
120099715 cycles # 0.015 GHz [100.00%]
162615 cpu/cycles-t/ # 0.14% transactional cycles [100.00%]
773 cpu/tx-start/ # 210 cycles / transaction [100.00%]
0 cpu/el-start/ # 0.000 K/sec [100.00%]
111864 cpu/cycles-ct/ # 0.04% aborted cycles
1.001474976 seconds time elapsed