首页 > 解决方案 > 如何在 ftrace 中打印 trace_printk 的完整跟踪文件?

问题描述

我正在使用 trace_printk() 打印一些数字(它们大约是一百万个数字)。但是,当我检查 /sys/kernel/debug/tracing/trace ... 时,只打印了整个范围的一部分。

谁能建议我如何增加缓冲区大小或以任何方式通过任何选项打印整个范围。

*注意:我不关心 ftrace 的其他输出。

*注2:我是使用ftrace和内核函数的初学者。

标签: clinuxftraceprintk

解决方案


基于 Ubuntu 18.04

  1. buffer_size_kb 文件存在于 /sys/kernel/debug/tracing 目录中。

    您可以通过 echo 进行更改。

    $ eche echo 4096 > buffer_size_kb
    

    buffer_size_kb * cpu core count = buffer_total_size_kb 是自动计算和存储的。

    这将增加 ftrace 文件中的数量。

  2. 覆盖文件存在于 /sys/kernel/debug/tracing/options 目录中。

    覆盖文件也可以更改为回显。

    $ eche echo 4096 > buffer_size_kb
    

    默认值为 1,即丢弃最旧的事件(第一部分)。相反,如果为零,则丢弃最近的事件(后面)。

    在这种情况下,ftrace 文件的数量并没有增加,可以看到第一个或最后一个。


推荐阅读