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

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

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

我的最终目标是将结果(频率)写入某个文件(例如:/ 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的值。