如何在 ftrace 中打印 trace_printk 的完整跟踪文件?
Posted
技术标签:
【中文标题】如何在 ftrace 中打印 trace_printk 的完整跟踪文件?【英文标题】:How to print full trace file of trace_printk in ftrace? 【发布时间】:2019-07-22 08:22:21 【问题描述】:我正在使用 trace_printk() 打印一些数字(它们大约是一百万个数字)。但是,当我检查 /sys/kernel/debug/tracing/trace ... 时,只会打印整个范围的一部分。
谁能建议我如何增加缓冲区大小或通过任何选项打印整个范围。
*注意:我不关心 ftrace 的其他输出。
*注2:我是使用ftrace和内核函数的初学者。
【问题讨论】:
【参考方案1】:基于 Ubuntu 18.04
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 文件中的数量。
覆盖文件存在于 /sys/kernel/debug/tracing/options 目录中。
覆盖文件也可以改为回显。
$ eche echo 4096 > buffer_size_kb
默认值为 1,即丢弃最旧的事件(第一部分)。 相反,如果为零,则丢弃最近的事件(后面)。
在这种情况下,ftrace文件的数量并没有增加,可以看到第一个或最后一个。
【讨论】:
以上是关于如何在 ftrace 中打印 trace_printk 的完整跟踪文件?的主要内容,如果未能解决你的问题,请参考以下文章
Debugging the kernel using Ftrace
Debugging the kernel using Ftrace
Debugging the kernel using Ftrace