问题标签 [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 回答
2623 浏览

linux - 关于 ftrace 的良好解释/文档

我刚刚读到 2.6.27 内核有一个名为 ftrace 的新模块,它听起来很像 suns dtrace 实用程序。我在搜索文档时遇到了一些麻烦,我想知道其他人是否有任何东西。这是否将在 dtrace 之类的完整编程堆栈上实现,并且我们将获得一种用于在 linux 中进行跟踪的漂亮的小脚本语言?

0 投票
2 回答
3218 浏览

profiling - Linux内核中Perf事件子系统的性能开销

Linux 的性能计数器是一个新的基于内核的子系统,它为所有事物的性能分析提供了一个框架。它还涵盖了硬件级别(CPU/PMU、性能监控单元)功能和软件功能(软件计数器、跟踪点)。从 2.6.33 开始,内核提供 'perf_event_create_kernel_counter' 内核 api 供开发人员创建内核计数器以收集系统运行时信息。我最关心的是启用 tracepoint/ftrace 时对整个系统的性能影响。我找不到关于它们的文档。曾经有人告诉我,ftrace 是通过动态修补代码实现的,它会大大降低系统速度吗?

0 投票
1 回答
1881 浏览

linux-kernel - 如何使用 ftrace 获取系统调用调用的内核调用图?

我已经尝试过这些,但它们都产生“空”输出文件:

0 投票
2 回答
822 浏览

python - 使用 python 从 C 代码中提取函数名称及其注释(以了解 Linux 内核)

背景信息

我刚刚开始学习有关驱动程序和 linux 内核的知识。我想了解用户write()read()工作方式。所以我开始使用ftrace来希望看到函数的路径。但是像下面这样的单个程序的跟踪是“巨大的”。

我也不知道我可以过滤哪些函数,因为我不了解 Linux 内核并且我不想丢掉一些重要的东西。

所以我开始研究 function_graph 跟踪。这是一个片段。

我看到了这些.down_write().up_write()我想,这正是我要搜索的。所以我查了一下。down_write() 源代码

但事实证明,这只是锁定和释放锁定。然后我开始为我写一个小参考,所以我不必总是查找这些东西,因为它好像有超过 9000 个。然后我有了想法,为什么不,解析这些函数和它们的注释并将它们写在跟踪文件中的函数后面?像这样:

主要问题

所以我开始思考如何才能做到这一点。我想用 python 来做,因为我觉得它最舒服。

1.问题
为了匹配C函数和注释,我必须定义和实现一个递归匹配语法:(

2. 问题
有些函数只是包装器,没有注释。例如do_brk()__do_brk()行,评论仅在__do_brk()

所以我想,也许还有其他的评论来源。也许是文档?也有可能,这个使用 python 的“文档生成”已经有人实现了。

还是我理解系统的方式read() write()非常不智能?你能给我提示我应该如何深入挖掘吗?

非常感谢您阅读,
费边

0 投票
0 回答
377 浏览

linux - ftrace函数统计和oprofile的区别

有人可以比较ftrace统计数据oprofile吗?我们观察到以下现象:

  • 在网络性能测试期间启用,我们发现使用 ftrace profiler ( ) 对性能测试的影响很小(与未启用oprofile的情况相比),oprofileCONFIG_FUNCTION_PROFILER
  • 当我们启用分析器时,网络测试的性能下降了大约 90%。
  • 有很多函数在oprofilereport中采样的比较少,但是在ftrace profile的report中,执行起来需要很多时间(大部分都是skb_allocand skb_free)。

如果您之前使用过这两种分析,请对它们的准确性提出建议?

0 投票
1 回答
1076 浏览

android - 打开功能跟踪时,Android上的Ftrace冻结,有人帮助我:(

我已经在 android AVD 上安装了 Ftrace 并尝试使用 Ftrace 的功能,但它不起作用。

以下是我所做的列表:

  1. 安装 ubuntu 10.04 LTS
  2. 安装必要的工具,例如 android sdk、toolchain、libs 等
  3. 下载金鱼内核 参考 - http://blog.markloiseau.com/2012/07/how-to-compile-the-android-goldfish-emulator-kernel/
  4. 修改内核配置文件(开启 Tracer Options)
  5. 使用已使用跟踪器选项编译的自定义内核启动金鱼
  6. 尝试使用 Ftrace 功能
  7. 内核冻结

这是日志:

如上所示,某些功能运行良好。但是在我打开跟踪功能时,一个关键功能,系统停机了。

我应该怎么办 ?

0 投票
2 回答
4073 浏览

linux - 如何从 Linux 中的 ftrace 中的特定函数开始获取完整的调用图?

我想用 ftrace 跟踪特定的函数,但要从该函数进一步调用。

我已经设法在我想要的函数上使用过滤器启动 ftrace,但现在它只向我显示了这个被调用的特定函数。

所以我的问题是:如何打印从特定函数调用的所有函数、这些函数调用的函数等等?

0 投票
2 回答
5066 浏览

android - 如何使 ftrace function_graph 跟踪器可以使用 linux 内核函数?

我想在内核启动过程中使用 ftrace 跟踪一个函数function_graph以了解它的作用,但它在available_filter_functions.

我试图用 导出它EXPORT_SYMBOL(),猜测它会使它可用,但事实并非如此。

你有解决方案吗 ?

有关信息,我要跟踪的功能persistent_ram_init_ringbufferpersistent_ram_early_initAndroid 内核 3.4 中。

我通读了文档,但对此一无所获,而 grep 并没有提供更多帮助...

谢谢

0 投票
2 回答
7372 浏览

android - Android Systrace 跟踪文件格式

Android systrace工具,通过 ADB调用atrace工具。但是,我不太了解跟踪文件的格式。显然它与 linux ftrace工具非常相似,但有一些区别。主要区别在于它不使用System.Map文件,但它将所有信息包含在跟踪文件中。此外,还有特定于 android 的新 B|E 条目。

在 Android 源代码中有一些关于这种格式的信息:http ://androidxref.com/4.1.1/xref/external/chromium-trace/src/tracing/linux_perf_importer.js

但是,在该文档中,我们可以看到该格式属于 Linux Perf Tool。我不这么认为,linux perf 作为输出提供了一种非常不同的格式...(除非某些特殊配置处于活动状态...)

我的问题是:有人知道我在哪里可以找到关于使用adb 的atrace工具生成的 android 跟踪文件的官方文档吗?

这种格式你熟悉吗?

提前致谢 !

0 投票
1 回答
543 浏览

linux - 可以在没有 debugfs 的情况下使用 ftrace 吗?

我正在查看一个 Linux KERNEL 配置文件,其中启用了 function_trace 但禁用了 debugfs。如果我将此内核加载到目标上,有什么方法可以使用 function_tracer 吗?如果 debugfs 被禁用,是不是默认情况下没有启用功能跟踪器?