问题标签 [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.
linux - 关于 ftrace 的良好解释/文档
我刚刚读到 2.6.27 内核有一个名为 ftrace 的新模块,它听起来很像 suns dtrace 实用程序。我在搜索文档时遇到了一些麻烦,我想知道其他人是否有任何东西。这是否将在 dtrace 之类的完整编程堆栈上实现,并且我们将获得一种用于在 linux 中进行跟踪的漂亮的小脚本语言?
profiling - Linux内核中Perf事件子系统的性能开销
Linux 的性能计数器是一个新的基于内核的子系统,它为所有事物的性能分析提供了一个框架。它还涵盖了硬件级别(CPU/PMU、性能监控单元)功能和软件功能(软件计数器、跟踪点)。从 2.6.33 开始,内核提供 'perf_event_create_kernel_counter' 内核 api 供开发人员创建内核计数器以收集系统运行时信息。我最关心的是启用 tracepoint/ftrace 时对整个系统的性能影响。我找不到关于它们的文档。曾经有人告诉我,ftrace 是通过动态修补代码实现的,它会大大降低系统速度吗?
linux-kernel - 如何使用 ftrace 获取系统调用调用的内核调用图?
我已经尝试过这些,但它们都产生“空”输出文件:
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()
非常不智能?你能给我提示我应该如何深入挖掘吗?
非常感谢您阅读,
费边
linux - ftrace函数统计和oprofile的区别
有人可以比较ftrace
统计数据oprofile
吗?我们观察到以下现象:
- 在网络性能测试期间启用,我们发现使用 ftrace profiler ( ) 对性能测试的影响很小(与未启用
oprofile
的情况相比),oprofile
CONFIG_FUNCTION_PROFILER
- 当我们启用分析器时,网络测试的性能下降了大约 90%。
- 有很多函数在
oprofile
report中采样的比较少,但是在ftrace profile的report中,执行起来需要很多时间(大部分都是skb_alloc
andskb_free
)。
如果您之前使用过这两种分析,请对它们的准确性提出建议?
android - 打开功能跟踪时,Android上的Ftrace冻结,有人帮助我:(
我已经在 android AVD 上安装了 Ftrace 并尝试使用 Ftrace 的功能,但它不起作用。
以下是我所做的列表:
- 安装 ubuntu 10.04 LTS
- 安装必要的工具,例如 android sdk、toolchain、libs 等
- 下载金鱼内核
参考 - http://blog.markloiseau.com/2012/07/how-to-compile-the-android-goldfish-emulator-kernel/ - 修改内核配置文件(开启 Tracer Options)
- 使用已使用跟踪器选项编译的自定义内核启动金鱼
- 尝试使用 Ftrace 功能
- 内核冻结
这是日志:
如上所示,某些功能运行良好。但是在我打开跟踪功能时,一个关键功能,系统停机了。
我应该怎么办 ?
linux - 如何从 Linux 中的 ftrace 中的特定函数开始获取完整的调用图?
我想用 ftrace 跟踪特定的函数,但要从该函数进一步调用。
我已经设法在我想要的函数上使用过滤器启动 ftrace,但现在它只向我显示了这个被调用的特定函数。
所以我的问题是:如何打印从特定函数调用的所有函数、这些函数调用的函数等等?
android - 如何使 ftrace function_graph 跟踪器可以使用 linux 内核函数?
我想在内核启动过程中使用 ftrace 跟踪一个函数function_graph
以了解它的作用,但它在available_filter_functions
.
我试图用 导出它EXPORT_SYMBOL()
,猜测它会使它可用,但事实并非如此。
你有解决方案吗 ?
有关信息,我要跟踪的功能persistent_ram_init_ringbuffer
在persistent_ram_early_init
Android 内核 3.4 中。
我通读了文档,但对此一无所获,而 grep 并没有提供更多帮助...
谢谢
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 跟踪文件的官方文档吗?
这种格式你熟悉吗?
提前致谢 !
linux - 可以在没有 debugfs 的情况下使用 ftrace 吗?
我正在查看一个 Linux KERNEL 配置文件,其中启用了 function_trace 但禁用了 debugfs。如果我将此内核加载到目标上,有什么方法可以使用 function_tracer 吗?如果 debugfs 被禁用,是不是默认情况下没有启用功能跟踪器?