ftrace:通过GPIO输出

问题描述

我正在做一些研究,需要在一定时间范围内收集所有内核函数调用,例如60秒我正在使用Raspberry Pi 4B。 我尝试使用函数跟踪器ftrace并通过

读取trace_pipe
echo function > current_tracer
echo 1 > tracing_on
cat trace_pipe > /home/pi/trace/test.txt

此方法似乎太慢,并且由于缓冲区溢出而丢失了太多数据。 50-60M的数据点丢失了,而我只得到了约300万个数据点。因此,这不是一个好的统计数据。

我还尝试使用trace-cmd

trace-cmd record -p function sleep 60

trace-cmd丢失了大约2000万个数据点,这虽然好得多,但仍然不足以建立良好的统计数据。此外,我得到的文件

trace-cmd report > /home/pi/trace/test_trace-cmd.txt

大约为5-6 Gb,需要几分钟的时间来写。我无意将此文件缩小(我认为这是不可能的)。但是我等不了那么久。 我还担心通过保存如此大的跟踪文件而给系统带来过多的开销。是这样吗?

我想知道,是否有可能将trace_pipe(或其他跟踪文件)的输出定向到某个I / O引脚,以便我可以将一些逻辑分析仪连接到该引脚并读取数据流通过其他设备?这样就无需将跟踪文件保存在树莓派本身上。我也希望我可以减少丢失的数据量。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...