Как определить частоту таймера в Linux
Мне нужно написать модуль ядра для расчета частоты ядра Linux (таймера прерывания).
кто-то сказал мне, что мне нужно использовать таймер в моем модуле, но я не знаю, как это сделать явно:(
Моя конечная цель - записать результат (частоту) в некоторый файл (например, в: /proc/osfreq/) .
знак равно
2 ответа
Есть много способов получить частоту процессора:
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 логических процессора, частота которых: 43986424 - 43986173 ~=250.
Также вы можете получить значение var cpu_khz в proc.c в пространстве ядра.
Вы можете просто напечатать значение глобальной переменной HZ в модуле, используя printk, и проверить журнал ядра после загрузки модуля, используя $dmesg, после чего вы можете найти значение HZ.