我正在尝试在经历过之后在 ftrace 中启用“功能”跟踪器
这是命令。
# cat /sys/kernel/debug/tracing/current_tracer
nop
# cat /sys/kernel/debug/tracing/tracing_on
#cat /sys/kernel/debug/tracing/tracing_on
1
# echo function > current_tracer
-sh: echo: write error: Device or resource busy
#
当我在 ftrace 中尝试函数跟踪器时,我是否错过了一些东西,导致“设备或资源繁忙”。
任何帮助将非常感激。
我也有这个。就我而言,我让
rasdaemon
进程读取一些跟踪文件,防止 current_tracer
被切换。
这是我的解决方法。
首先我运行 lsof:
$ sudo lsof 2>/dev/null | grep /sys/kernel/debug/tracing
bash 2990940 root cwd DIR 0,11 0 1 /sys/kernel/debug/tracing
rasdaemon 2997322 root 5r REG 0,11 0 132936 /sys/kernel/debug/tracing/instances/rasdaemon/per_cpu/cpu0/trace_pipe_raw
...
我的 bash 是第一个,但其他进程来自 rasedaemon 服务。我停止了它:
systemctl stop rasdaemon.service
然后就成功了:
$ echo function | sudo tee current_tracer
function
$
Fwiw,我的问题是,在我的案例中,我有一个关于
trace
或者更确切地说 trace_pipe
文件的读者。我的例子中的读者是bpftool prog tracelog
。