非sudo执行perf sched命令始终提示“broken or missing trace data”兼容问题求助
非sudo执行perf sched命令始终提示“broken or missing trace data”兼容问题求助
各位大佬好,我在Ubuntu 22.04(内核版本5.19.0-35-generic)上碰到了一个perf sched的诡异问题,想请教下大家怎么解决。
按照Brendan Gregg博客里的例子,用非sudo权限执行录制命令是正常的:
perf sched record -- sleep 1
输出也显示数据成功捕获:
[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 2.844 MB perf.data (11439 samples) ]
但不管我用哪个命令去读取生成的perf.data,全都会报错:
- 执行
perf script --header、perf sched script、perf sched latency或者perf sched map,得到的错误都是:
incompatible file format (rerun with -v to learn more)
加上-v参数看详细日志,也只看到提示broken or missing trace data:
perf script -v --header
输出:
build id event received for [kernel.kallsyms]: 77ab8542b6540fae3367bbb18a7aeede3c3b6f7b [20] build id event received for [vdso]: f33b8f26bed889157b75129711599f9ca5ec9d0e [20] broken or missing trace data incompatible file format (rerun with -v to learn more)
我搜了一下,只找到一些旧的bug报告,试了里面的workaround比如:
perf script --header -i - < perf.data
结果还是报同样的错误,完全没用。
但奇怪的是,只要全程用sudo执行,不管是录制还是读取,一切都正常:
sudo perf sched record -- sleep 1
输出:
[ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 3.875 MB perf.data (19424 samples) ]
之后执行sudo perf script --header就能正常输出profiling数据了。
有没有大佬知道为什么非sudo权限下会出现这个兼容性问题呀?
备注:内容来源于stack exchange,提问作者Federico
相关产品推荐
相关产品推荐

