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

Saf*_*med 5 linux time profiling linux-kernel

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

我正在寻找能像perfAPI 一样工作的东西,除了测量迄今为止所消耗的CPU时间总量(以纳秒为单位)而不是测量周期或指令.

在用户空间中,您可以使用此clock_gettime功能librt指定CLOCK_PROCESS_CPUTIME_ID时钟类型以获取上述行为.查看源代码clock_gettime,该函数调用来自pthread库的另一个函数调用__pthread_clock_gettime.

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

小智 1

性能 API 使您可以访问各种硬件事件和计数器。它具有低级和高级 API。PAPI_epc 函数应该满足您的需求:

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