1

我正在尝试在 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 中尝试函数跟踪器时,我是否错过了一些东西,因为我得到“设备或资源繁忙”。

任何帮助将不胜感激。

4

2 回答 2

1

我也有这个。在我的情况下,我让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
$
于 2020-10-02T00:00:59.223 回答
0

Fwiw my issue was that I had a reader on the trace or rather trace_pipe file in my case. The reader in my case was bpftool prog tracelog.

于 2019-11-26T22:16:58.510 回答