如何在linux中确定定时器频率

时间:2012-11-28 08:12:33

标签: linux module linux-kernel linux-device-driver

我需要编写一个内核模块来计算Linux内核定时器(中断)频率。

有人告诉我,我需要在我的模块中使用计时器,但我不知道如何清楚地做到这一点:(

我的最终目标是将结果(频率)写入某个文件中(例如:/ proc / osfreq /)。

=)

2 个答案:

答案 0 :(得分:9)

有很多方法可以获得cpu的时间频率:

1. zcat /proc/config.gz |grep CONFIG_HZ

# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250

表示250 Hz

2. cat /proc/interrupts |grep LOC; sleep 1;cat /proc/interrupts |grep LOC

LOC:   43986173   44089526   43986113   44089117
LOC:   43986424   44089777   43986364   44089368

表示有4个逻辑CPU,频率为:43986424 - 43986173~ = 250。

此外,您可以在内核空间的proc.c中获取var cpu_khz的值。

答案 1 :(得分:1)

您只需在模块中打印全局变量HZ的值即可 使用printk,并在使用$ dmesg加载模块后检查内核日志,然后就可以找到HZ的值。