【发布时间】:2016-11-27 01:59:47
【问题描述】:
我想比较两个 linux 内核版本之间的调度延迟。到目前为止,这是我尝试过的:
- 在两个内核上都配置了 Ftrace
- 在跟踪中启用了 sched 事件。
- 启用唤醒跟踪器。
但是,wakeup 只显示最高优先级进程的结果,而不是我的 c 程序。我尝试使用 nice 并从跟踪中捕获它。它仍然显示其他同样高进程的日志。我是否错过了其他一些步骤来捕获我的流程日志?有没有更好的方法通过修改我的程序的源代码而不是在启动它时使用 nice 来将我的进程的优先级设置为最高?
我尝试的下一步是禁用唤醒跟踪器并仅启用 sched 事件。我得到的日志看起来像这样
0 1dNh3 3us+: sched wakeup : task hald : 1952 [120] success=1
−0 1d..3 7us! : sched switch : task swapper : 0 [140] (R) ==>
hald : 1952 [120]
+ 和 ! 显示延迟(请参阅 ftrace 内核文档以了解该数字)。这是否意味着 sched wakeup 的延迟为 '+' 和 sched Witch '!'分别是微秒?
还有其他比较linux调度延迟的方法吗?
【问题讨论】:
标签: c linux linux-kernel scheduling ftrace