【发布时间】:2013-01-10 10:26:08
【问题描述】:
我想获得以下的总统计数据:
- 发生了多少
softirq? - 发生了多少
interrupts? - 发生了多少
context switches?
我知道你可以使用pidstat、cat /proc/interrupts 和/cat/proc/softirqs。但是使用它们的开销太大。
如何在不使用
/proc的情况下以最快的方式获得{1-3}的底线值?我可以使用ftrace 来帮助我跟踪事件吗?
我将使用高分辨率计时器来监控系统:
【问题讨论】:
-
如果您在更高的层次上解释您想要做什么,我们可能会为您提供更多帮助...
-
我想设置一个定期函数将与定时器一起调度,其中两个顺序执行之间的增量是机器 IPS 的函数(数学),发生中断和软中断和上下文切换的次数谢谢@thkala
-
您希望达到什么样的区间精度?因为在调度操作时,即使是高精度的计时器也没有预期的那么精确......
-
我希望准确度至少是 CPU 执行 10k 汇编指令(在 ARM 上)@thkala 所花费的时间
-
@0x90:对于您的硬件来说,实时单位需要多长时间?一些 ARM 处理器(例如 ARM-Cortex A9)每个周期可以执行两条指令,对于 1GHz 处理器,这归结为 5us。我怀疑你能否获得具有这种准确性的调度计时器,除非你愿意使用某种忙等待循环。
标签: c linux-kernel profiling arm embedded-linux