【发布时间】:2013-04-10 17:22:33
【问题描述】:
我想跟踪一段代码中的抖动,我知道有很多潜在的来源(任务切换、系统调用、缓存未命中、将任务移动到另一个 CPU、cpu 限制等),我知道如何跟踪所有其中但我不知道如何跟踪的唯一一个是内核花费在服务中断上的时间。数据在 /proc/stat 中,但它以低分辨率测量 soft-irq 和 irq 中的时间,我正在寻找分辨率更高的东西。
有没有办法让内核服务中断所花费的时间精确到纳秒或至少微秒?
【问题讨论】:
-
您可以编译自定义内核,在中断进入/退出时翻转 gpio,然后在逻辑分析仪上跟踪时序。
-
任何测量某物的尝试都会影响某物(在不同程度上)。所以首选外部测量,比如@TJD的评论。
标签: c linux performance linux-kernel irq