如何在 ftrace 中打印 trace_printk 的完整跟踪文件?

How to print full trace file of trace_printk in ftrace?

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

任何人都可以建议我如何增加缓冲区大小或通过任何选项打印整个范围的任何方法。

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

*注 2:我在使用 ftrace 和内核函数方面还算新手。

在 Ubuntu 18.04 的基础上

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

    您可以通过回显进行更改。

    $ eche echo 4096 > buffer_size_kb
    

    buffer_size_kb*cpu核数=buffer_total_size_kb自动计算存储

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

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

    覆盖文件也可以改为回显

    $ eche echo 4096 > buffer_size_kb
    

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

    本例中ftrace文件量没有增加,可以看到第一个还是最后一个。