我目前正在使用do_gettimeofday()
函数来测量内核中的时间,这给了我微秒的精度。有没有比这更精确的东西(可能是纳秒级)?
答案 0 :(得分:14)
ktime_get()
函数返回ktime_t
,其分辨率为纳秒。
答案 1 :(得分:5)
据我所知,最精确的定时器应该是处理器特定的计数器寄存器(例如x86中的TSC)。 Linux内核从“./arch/x86/include/asm/msr.h”文件中提供rdtsc,rdtscl,rdtscll宏来读取该寄存器值。对于ARM,cycle counter register。
这些寄存器在CPU与CPU之间都有所不同。访问它的公共接口是“get_cycles”函数,它在文件中声明。
也许,this document可以提供帮助。