我在 Ubuntu 20.04 上使用 perf sched:sched_stat_sleep
,并将以下内容添加到/etc/fstab
:
debugfs /sys/kernel/debug debugfs defaults 0 0
tracefs /sys/kernel/tracing tracefs defaults 0 0
但是,重新启动机器后,我无法运行该perf
命令(例如perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -a -g -o perf.data sleep 1
),并且出现错误:
event syntax error: 'sched:sched_stat_sleep'
\___ can't access trace events
Error: No permissions to read /sys/kernel/tracing/events/sched/sched_stat_sleep
Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/tracing/'
再次运行以下命令,确实允许我再次正确使用 perf 的设置。
echo 1 | sudo tee /sys/kernel/debug/tracing/events/enable
echo 1 | sudo tee /proc/sys/kernel/sched_schedstats
sudo mount -o remount,mode=755 /sys/kernel/debug/
sudo chmod 755 /sys/kernel/debug/tracing/
为确保重启后还能继续运行,正确的设置方法是什么?
答案1
事实证明,只需添加其他fstab
选项即可解决权限问题:
debugfs /sys/kernel/debug debugfs defaults,mode=755 0 0
tracefs /sys/kernel/tracing tracefs defaults,mode=755 0 0