Изменить таймер ядра Linux - PullRequest
9 голосов
/ 10 февраля 2011

Мне нужно запустить приложение, чувствительное к задержке, и меня попросили изменить разрешение таймера до 1000 Гц или более. Я немного искал в сети и нашел страницы о CONFIG_HZ и т. Д.

Тем не менее, в файле также есть несколько других связанных настроек, поэтому я хочу быть уверен, что не испортил настройки. Я публикую здесь вывод

$cat /boot/config-2.6.28-11-generic | grep HZ
# CONFIG_HZ_1000 is not set
# CONFIG_HZ_300 is not set
CONFIG_MACHZ_WDT=m
CONFIG_NO_HZ=y
CONFIG_HZ=250
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y

Значит, вторая строка, "# CONFIG_HZ_1000 не установлена", означает, что 1000 Гц не поддерживается? Нужно ли менять только CONFIG_HZ, а не CONFIG_HZ-250?

PS: Я использую ядро ​​2.6 (ubuntu jaunty) на процессоре Geode.

EDIT1: я запустил некоторый код из http://www.advenage.com/topics/linux-timer-interrupt-frequency.php на своем настольном компьютере и компьютере для разработки. Код, предположительно, является точной мерой того, насколько быстро может выдержать таймер система. Выходная мощность составляла примерно 183 Гц (на машине для разработки). Так будет ли смысл менять таймер?

Ответы [ 2 ]

15 голосов
/ 10 февраля 2011

Не редактируйте .config напрямую, если вы не являетесь экспертом по Kbuild (и если вы спрашиваете об этом, вы не являетесь экспертом по Kbuild).Вместо этого запустите make menuconfig или make xconfig, чтобы загрузить систему конфигурации на основе меню.С другой стороны, make config будет выполнять процесс конфигурации на основе линии (где он задает вам несколько сотен вопросов о том, что настраивать - не рекомендуется).Соответствующая опция находится в разделе «Тип и характеристики процессора» как «Частота таймера».

Тем не менее, это может быть необязательно.Современный Linux может использовать таймеры событий с высоким разрешением (CONFIG_HIGH_RES_TIMERS) для достижения таймеров с низкой задержкой даже без увеличения частоты таймера.В системе без галочек (CONFIG_NO_HZ) частота таймера практически не влияет.

С другой стороны, я не уверен, какую поддержку таймера имеют процессоры Geode.Возможно, вы захотите запустить cyclictest с различными конфигурациями ядра, чтобы увидеть, что вам нужно для получения низкой задержки.Тест, который вы выполняли, проверяет максимальную частоту отправки, а не задержку отправки, поэтому было бы интересно сравнить результаты циклического тестирования.Если вам нужно действительно с низкой задержкой, то также может быть интересен набор патчей CONFIG_PREEMPT_RT *1016*.

7 голосов
/ 10 февраля 2011

Чтобы изменить настройку таймера, вам нужно перекомпилировать ядро. Измените параметр в каком-либо стандартном инструменте настройки меню, а не в текстовом файле.

Файлы

/boot/config... сообщают только то, что установлено в конкретном двоичном файле ядра. Это не файл конфигурации, который вы можете изменить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...