内核中特定于线程的单调时钟源

时间:2014-01-06 07:00:23

标签: linux time linux-kernel profiling

是否有内核模块使用的单调时钟源可以附加到线程,只有在关联的线程运行时才会增加?

我正在寻找能够像perf API一样工作的东西,除了测量到目前为止所消耗的CPU时间总量(以纳秒为单位),而不是测量周期或指令。

在用户空间中,您拥有clock_gettime中的librt函数,您可以在其中指定CLOCK_PROCESS_CPUTIME_ID作为获取上述行为的时钟类型。查看source code of clock_gettime,此函数调用名为pthread的{​​{1}}库中的另一个函数。

我正在寻找类似的东西,可以从内核模块在Linux内核中设置并附加到任务,给出指向与任务相关联的__pthread_clock_gettime的指针。

1 个答案:

答案 0 :(得分:1)

Performance API可让您访问各种硬件事件和计数器。它有一个低级和高级API。 PAPI_epc函数应该符合您的需求:

http://icl.cs.utk.edu/papi/docs/db/d93/group__high__api.html#ga2f8766ae458b43d41e57e78b930a4f61