Ftrace“功能”启用失败,资源繁忙

时间:2019-09-24 12:54:07

标签: linux linux-kernel embedded-linux ftrace

我正在尝试在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中尝试函数跟踪程序时,是否因为某些原因而错过了“设备或资源繁忙”的信息?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我的问题是我在tracetrace_pipe文件中拥有读者。在我的情况下,读者是bpftool prog tracelog

答案 1 :(得分:0)

我也有这个。在我的情况下,我进行了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
$