profiling - Perf 错误:sys_perf_event_open() 系统调用为事件 (msr/tsc/) 返回了 22(无效参数)
问题描述
我正在使用 perf 来监视系统中的某些事件。但是,我收到以下错误,我不知道它来自哪里,因为该事件列在 perf list 中
sudo perf 记录 -e msr/tsc/ -a
Error:
The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (msr/tsc/).
/bin/dmesg may provide additional information.
No CONFIG_PERF_EVENTS=y kernel support configured?
如何检查 No CONFIG_PERF_EVENTS=y 内核支持配置?
**部分测试结果:
sudo dmesg | grep "perf\|pmu"**
[ 0.029179] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[ 0.029179] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[ 9475.406967] perf: interrupt took too long (2509 > 2500), lowering kernel.perf_event_max_sample_rate to 79500
[ 9475.990901] perf: interrupt took too long (3146 > 3136), lowering kernel.perf_event_max_sample_rate to 63500
[ 9476.886941] perf: interrupt took too long (3942 > 3932), lowering kernel.perf_event_max_sample_rate to 50500
[76057.268195] perf: interrupt took too long (4934 > 4927), lowering kernel.perf_event_max_sample_rate to 40500
[167368.007839] perf: interrupt took too long (6171 > 6167), lowering kernel.perf_event_max_sample_rate to 32250
[168338.165608] perf: interrupt took too long (7804 > 7713), lowering kernel.perf_event_max_sample_rate to 25500
性能列表 |grep msr
msr/aperf/ [Kernel PMU event]
msr/mperf/ [Kernel PMU event]
msr/pperf/ [Kernel PMU event]
msr/smi/ [Kernel PMU event]
msr/tsc/
sudo uname -a Linux bla 4.9.0-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
sudo /proc/config.gz返回命令未找到任何帮助/想法表示赞赏。
解决方案
perf record
可以通过使用组抽样来收集此信息。例如下面的命令
perf record -a -e '{cycles,msr/aperf/,msr/tsc/}:S'
根据 cycle
(第一个计数器)溢出收集所有三个事件的值。未记录的:S
修饰符是必要的,它确保只有组的领导者触发样本。要查看此信息,请使用perf report --group
,该参数可能不是必需的。恐怕每个样本的实际值仅在非常详细的perf script -D
.
推荐阅读
- reactjs - 在 Mutation 中出现错误时显示 SnackBar Material UI
- php -
- 在 mPDF 中无法使用内部表格列
- ping - 如何在 LAN 上可靠地 Arping 移动设备
- memory-management - 相对地址和逻辑地址之间的区别
- c# - JsonConvert.DeserializeObject 将 null 转换为空对象
- swift - 在表格视图单元格中单击按钮时显示弹出菜单
- dialogflow-es - 如何在谷歌操作中捕获对话流中的原始文本?
- powershell - 两个 CSV 文件之间的特定匹配
- html - 如何从左到右为下划线设置动画?
- node.js - 如何在 NodeJs 中使用 crpyto