我需要编写一个内核模块来计算 Linux Kernel Timer (Interrupt) Frequency 。
有人告诉我我需要在我的模块中使用计时器,但我不知道如何清楚地做到这一点:(
我的最终目标是将结果(频率)写入某个文件(例如:/proc/osfreq/)。
=)
我需要编写一个内核模块来计算 Linux Kernel Timer (Interrupt) Frequency 。
有人告诉我我需要在我的模块中使用计时器,但我不知道如何清楚地做到这一点:(
我的最终目标是将结果(频率)写入某个文件(例如:/proc/osfreq/)。
=)
获取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 的值。
可以直接用printk打印模块中全局变量HZ的值,用$dmesg加载模块后查看内核日志,就可以找到HZ的值。