我一直试图找到一种方法来检测特定线程何时在CPU上运行以及何时不运行。理想情况下,我想直接挂钩内核以跟踪我的线程何时被调度,何时产生,以及何时被上下文切换中断。是否有可以准确报告此信息的现成工具?
答案 0 :(得分:2)
你想要'perf sched'实用程序,或者如果运行旧内核,'ftrace'。
'perf sched'目前有五个子命令:
perf sched {record | latency | map | replay | script}
http://lwn.net/Articles/353295/
man perf-sched
答案 1 :(得分:0)
我会使用OProfile。
这是查看系统性能最简单的方法,并且可能足以满足您的需求。如果您需要其他超级自定义的东西,那么您最终可能会做一些事情,例如构建一个自定义内核,在调度感兴趣的事件期间切换GPIO,并使用逻辑分析器查看信号。我不推荐这种方法,因为它不值得你花时间。