6

我需要编写一个内核模块来计算 Linux Kernel Timer (Interrupt) Frequency 。

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

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

=)

4

2 回答 2

13

获取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 赫兹

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 的值。

于 2012-11-28T12:15:20.197 回答
1

可以直接用printk打印模块中全局变量HZ的值,用$dmesg加载模块后查看内核日志,就可以找到HZ的值。

于 2016-04-24T22:28:06.197 回答