Как определить частоту таймера в 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.

Другие вопросы по тегам