是否有内核模块使用的单调时钟源可以附加到线程,只有在关联的线程运行时才会增加?
我正在寻找能够像perf
API一样工作的东西,除了测量到目前为止所消耗的CPU时间总量(以纳秒为单位),而不是测量周期或指令。
在用户空间中,您拥有clock_gettime
中的librt
函数,您可以在其中指定CLOCK_PROCESS_CPUTIME_ID
作为获取上述行为的时钟类型。查看source code of clock_gettime
,此函数调用名为pthread
的{{1}}库中的另一个函数。
我正在寻找类似的东西,可以从内核模块在Linux内核中设置并附加到任务,给出指向与任务相关联的__pthread_clock_gettime
的指针。
答案 0 :(得分:1)
Performance API可让您访问各种硬件事件和计数器。它有一个低级和高级API。 PAPI_epc函数应该符合您的需求:
http://icl.cs.utk.edu/papi/docs/db/d93/group__high__api.html#ga2f8766ae458b43d41e57e78b930a4f61