问题标签 [ftrace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
201 浏览

linux-kernel - kprobe 模块在执行“echo 0 > /proc/sys/kernel/ftrace_enabled”后无法工作

只需对 ftrace 进行一些研究。

TCP echo 程序在两台主机之间运行。

当我关闭大开关(echo 0 > /proc/sys/kernel/ftrace_enabled)时,我自己的 kprobe 模块也无法工作。在内核日志文件中看不到 printk 消息。另外,pkt修改操作失败,可以成功接收到pkt。这真的让我很困惑。

我的测试 kprobe 模块在这里:

0 投票
1 回答
277 浏览

ubuntu - ftrace使用空内存?

ftrace 使用内存来保存跟踪记录。在开始新的跟踪之前,旧的跟踪仍然保存在内存中,ftrace 必须清空。如何才能做到这一点?

0 投票
1 回答
171 浏览

kernel - 内核跟踪返回截断消息

“文件可能被截断。至少需要 %ld 大小,但大小为 %ld”。任何人都可以帮助我了解如何调用此消息吗?我在尝试收集内核跟踪时看到此消息。谁能解释为什么在我尝试收集内核跟踪时会发生这种情况?

我注意到的另一件事是,当我第一次看到上述消息时尝试收集内核跟踪。当我再次尝试立即收集时,我能够收集日志。但是当我在 > 5 分钟后再次尝试收集时,我看到了上述消息。

0 投票
1 回答
1111 浏览

kernel - 如何在 ftrace 中使用跟踪标记?

如何使用跟踪标记ftrace来记录用户事件?我使用以下内容,但编译器无法定义WR_ONLY

稍后,使用该trace_write()函数将其记录到ftrace 缓冲区中。

编译器错误:

0 投票
1 回答
377 浏览

linux-kernel - kprobe_events 获取参数在 ARM 上不起作用

以下基于 kprobe_based 的事件示例运行良好:

但是,添加获取参数不起作用:

我认为问题是%ax%dx...它们的含义是什么?我怎样才能使这段代码工作?

0 投票
1 回答
298 浏览

linux-kernel - Linux 中 ftrace 的可用列表中会加入哪些功能?

我发现并非同一文件中的每个函数都列在 ftrace 的 /sys/kernel/debug/tracing/available_filter_functions 中。
例如,blk_mq_map_swqueue() 已列出,但 blk_mq_add_queue_tag_set() 未列出,即使文件 blik-mq.c 中有。
我查看了 linux 内核中的文档[ 1 ]。除了内联函数外,它似乎没有突出显示。它的标准是什么?

0 投票
1 回答
307 浏览

linux - 为什么 ftrace 中没有 irqsoff 选项

我正在使用带有 Linux 4.10.0-041000-generic 的 ubuntu 16.04。当我尝试输出available_tracers内容时,没有可用的irqsoff选项。我想使用此选项来审查论文中的实验。我怎样才能得到irqsoff可行的。

root@XXX:/sys/kernel/debug/tracing# cat available_tracers hwlat blk mmiotrace function_graph wakeup_dl wakeup_rt wakeup function nop

0 投票
1 回答
58 浏览

linux - Linux 函数分析器输出

我想分析内核中的代码流,以了解瓶颈在哪里。我发现函数分析器对我来说就是这样: https ://lwn.net/Articles/370423/ 不幸的是,我看到的输出对我来说没有意义。从上面的链接中,函数分析器的输出是:

其中“时间”是运行期间在此函数内花费的总时间。因此,如果我有调用 function_B 的 function_A,如果我正确理解了输出,则为 function_A 测量的“时间”也包括 function_B 的持续时间。

当我实际在我的电脑上运行它时,我看到另一个新列显示为输出:

s^2 代表什么?它不能是标准偏差,因为它高于平均值......

我从用户空间测量了这段代码流的总持续时间,得到了 400 毫秒。总结 s^2 列时,它接近 400 毫秒。这让我认为这可能是在 __do_page_fault 中花费的“纯”时间,其中不包括嵌套函数的持续时间。

这个对吗?我没有找到 s^2 列的任何文档,所以我对我的结论犹豫不决。

谢谢!

0 投票
2 回答
2191 浏览

linux - 如何使用 ftrace 仅跟踪系统调用事件而不显示 Linux 内核中的任何其他功能?

例如,要监控所有mkdir拨打的电话,我能想到的最好办法是:

然后在运行后sudo给出:

我的问题是它为每个系统调用输出两行:

  • sys_mkdir这是我想要的事件
  • SyS_mkdir这是过滤功能解决方法,我不想看到

如果我改为尝试这样做:

或者根本不碰那个文件,然后它会显示大量的功能,并且很难找到系统调用。

如果有更好的方法来禁用常规功能,只保留系统调用事件?

我可以只使用SyS_mkdir并禁用我猜想的系统调用事件,但如果我可以使用更具体的事件会感觉更干净吗?还:

  • 该事件显示参数,这更好。
  • 系统调用函数名称随内核版本而变化。例如,它已经__x64_sys_mkdir代替了SyS_mkdirLinux v4.18。

有关的:

在 Ubuntu 18.04、Linux 内核 4.15 上测试。

0 投票
3 回答
869 浏览

ftrace - 将 ftrace trace.dat 文件转换为 CTF 格式以与 TraceCompass 一起使用

我可以手动(然后生成trace-cmd extract)或通过方便的 trace-cmd(1) 前端实用程序生成 ftrace 数据。

使用trace-cmd,默认输出文件trace.dat;我知道我可以通过 kernelshark 直观地查看它,但更喜欢使用 Trace Compass GUI 来执行此操作。AFAIK,TraceCompass 使用.ctf文件格式。因此,我的问题是:

如何将 ftrace 或trace.dat文件从转换trace-cmd.ctf格式?

(我知道有关于将 perf(1) 转换为 CTF 的问答)。