【发布时间】:2012-01-26 22:18:00
【问题描述】:
我一直在尝试寻找一种方法来检测特定线程何时在 CPU 上运行,何时不在。理想情况下,我想直接连接到内核,以跟踪我的线程何时被调度、何时产生以及何时被上下文切换中断。有没有现成的工具可以准确报告这些信息?
【问题讨论】:
我一直在尝试寻找一种方法来检测特定线程何时在 CPU 上运行,何时不在。理想情况下,我想直接连接到内核,以跟踪我的线程何时被调度、何时产生以及何时被上下文切换中断。有没有现成的工具可以准确报告这些信息?
【问题讨论】:
您需要“perf sched”实用程序,或者如果运行较旧的内核,则需要“ftrace”。
'perf sched' 目前有五个子命令:
性能调度 {record|latency|map|replay|script}
http://lwn.net/Articles/353295/
man perf-sched
【讨论】:
我会使用OProfile。
这将是查看系统性能的最简单的现成方法,并且可能足以满足您的需求。如果您需要其他超级定制的东西,那么您最终可能会做一些事情,例如构建一个定制内核,在安排感兴趣的事件期间切换 GPIO,并使用逻辑分析仪查看信号。我不推荐这种方法,因为它不值得你花时间。
【讨论】: