我正在学习使用perf
我的分析工具Ubuntu 18.04.3 LTS
。我知道通过使用性能时间表您可以可视化工作负载期间的系统行为。我尝试使用并行程序:
perf timechart record mpirun -np 4 main
然后我收到此错误信息:
event syntax error: 'sched:sched_wakeup'
\___ can't access trace events
Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_wakeup
Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug/tracing'
Run 'perf list' for a list of valid events
Usage: perf record [<options>] [<command>]
or: perf record [<options>] -- <command> [<options>]
-e, --event <event> event selector. use 'perf list' to list available events
我尝试了 pref 建议的方法sudo mount -o remount,mode=755 /sys/kernel/debug/tracing
,但仍然出现相同的错误。有什么办法可以解决这个问题而不使用perf
root 身份?我已经将我的改为/proc/sys/kernel/perf_event_paranoid
-1 。
答案1
运行sudo mount -o remount,mode=755 /sys/kernel/debug/tracing
tracefs 后,现在应该以正确的权限挂载。但是,您仍需要确保您具有访问挂载点本身的权限(换句话说,您需要对所有父目录具有执行权限才能“遍历”到此路径)。
在 ubuntu 中,debugfs 以默认权限安装,/sys/kernel/debug
仅允许 root 遍历此目录。
跑步:
sudo mount -o remount,mode=755 /sys/kernel/debug/
应该可以解决这个问题。