你了解CONFIG_HZ 和 USER_HZ的区别? -pae CONFIG_HZ_250=y CONFIG_HZ=250 有意思的是,systemtap tutorial有个比较好玩的实验,也可以确定CONFIG_HZ的大小。 global count_jiffies, count_ms probe TImer.jiffies(100) { count_jiffies ++ } probe TImer.ms(100) { count_ms ++ } probe TImer.ms(543210) { hz=(1000*count_jiffies) / count_ms printf ("jiffies:ms ratio %d:%d => CONFIG_HZ=%d\n", count_jiffies, count_ms, hz) exit () } 输出如下: jiffies:ms ratio 1358:5420 => CONFIG_HZ=250 实验等待的时间有点久,需要等待543210ms,9分钟左右,时间越久,误差越小,如果等待的时间段一些,会出现误差。感兴趣的筒子自行实验。 除此外,还有一个值是USER_HZ,不了解这个的,可能会了解TImes系统调用,这个系统调用是统计进程时间消耗的, #include clock_t times(struct tms *buf); times系统调用的时间单位是由USER_HZ决定的,所以,times系统调用统计的时间是以10ms为单位的。说100HZ空口无凭,如何获取USER_HZ。 #include #include #include #include #include int main() 本文来源:https://www.wddqw.com/doc/e22276c4842458fb770bf78a6529647d262834d0.html