我想知道“1ms sleep”需要多少时间。
在内核模块中运行此任务:
rdtscl(aj);
msleep(1);
rdtscl(b);
printk(KERN_INFO "Difference = %lu", (b-a));// Number of clock cycles consumed
我得到的输出:
Difference = 13479219
cat /proc/cpuinfo 的输出
cpu MHz : 1197.000
有了这个,我计算了延迟,得到了 11.26 毫秒。
为什么我没有在 1 毫秒左右得到它?
更新:
cat /proc/cpuinfo 中的处理器频率应从以下行获取:
model name : Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz
=> 处理器频率为 3.07 GHz。不知道这条线“cpu MHz:1197.000”的含义是什么。
谢谢