无法理解ftrace输出

钦纳

我正在尝试使用跟踪内核ftrace我想跟踪内核中调用的函数。我能够从中捕获功能跟踪/sys/kernel/debug/tracing/trace但是无法理解。大部分跟踪仅具有以下调用。我期望从应用程序级别到内核级别的函数调用。

                                           get_page_from_freelist() {
 0)               |                          next_zones_zonelist() {
 0)   0.812 us    |                          } /* next_zones_zonelist */
 0)               |                          zone_watermark_ok() {
 0)               |                            __zone_watermark_ok() {
 0)   0.917 us    |                            } /* __zone_watermark_ok */
 0)   2.522 us    |                          } /* zone_watermark_ok */
 0)               |                          _raw_spin_lock_irqsave() {
 0)   0.825 us    |                          } /* _raw_spin_lock_irqsave */
 0)               |                          __rmqueue() {
 0)   0.963 us    |                          } /* __rmqueue */
 0)               |                          get_pageblock_flags_group() {
 0)   0.892 us    |                          } /* get_pageblock_flags_group */
 0)               |                          __mod_zone_page_state() {
 0)   0.833 us    |                          } /* __mod_zone_page_state */
 0) + 13.444 us   |                        } /* get_page_from_freelist */
 0) + 16.776 us   |                      } /* __alloc_pages_nodemask */
 0)               |                      mod_zone_page_state() {
 0)               |                        __mod_zone_page_state() {
 0)   0.900 us    |                        } /* __mod_zone_page_state */
 0)   2.476 us    |                      } /* mod_zone_page_state */
 0)               |                      kmem_cache_alloc() {
 0)   0.907 us    |                      } /* kmem_cache_alloc */
 0)               |                      __phys_addr() {
Houcheng

内核程序类似于普通的c:一个main()程序,它调用functions(),而函数中的函数则调用其他子函数。例如:

void f1() {
     f2();
     f3();
}


void main() {
f1()
f4() 
}

程序的调用关系将是树形结构。在此示例中,调用关系为

main() -> f1() -> f2()
               -> f3()
       -> f4()

ftrace工具显示了kerne的调用函数以及每个函数的花费时间。在您的ftrace结果中,它首先显示内核调用get_page_from_freelist()并花费13us。然后内核从函数__alloc_pages_nodemask返回。此功能花费16us,依此类推。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法理解ftrace输出

来自分类Dev

无法理解getw的输出

来自分类Dev

无法理解fork()输出

来自分类Dev

无法理解getw的输出

来自分类Dev

无法理解x * = y + 1输出

来自分类Dev

无法理解递归函数的输出。

来自分类Dev

C语言。无法理解指针的输出

来自分类Dev

无法理解递归调用的“无”输出

来自分类Dev

无法理解递归调用的“无”输出

来自分类Dev

无法理解此代码的输出?

来自分类Dev

无法理解递归函数的输出。

来自分类Dev

无法理解C程序输出

来自分类Dev

无法理解函数输出 (C)

来自分类Dev

无法理解程序和输出

来自分类Dev

输出不同——无法理解逻辑

来自分类Dev

无法理解C中联合程序的输出

来自分类Dev

C中位域的内存布局-无法理解输出

来自分类Dev

无法理解空阵列输出,同时使用美味的汤

来自分类Dev

我无法理解makefile中patsubst的输出

来自分类Dev

无法理解numpy.random.RandomState()的输出

来自分类Dev

无法理解C中的联合程序的输出

来自分类Dev

无法理解此C指向arraycode的指针的输出

来自分类Dev

我无法理解以下代码的输出

来自分类Dev

我无法理解下面给定代码的输出

来自分类Dev

无法理解 Python Negative List Slice 的输出

来自分类Dev

无法理解递归

来自分类Dev

无法理解错误:

来自分类Dev

无法理解连接

来自分类Dev

无法理解的NullPointerException