2011-02-10 5 views
7

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

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

$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 не установлен», означает, что 1000Hz не поддерживается? Нужно ли мне менять только CONFIG_HZ, а не CONFIG_HZ-250?

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

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

ответ

14

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

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

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

7

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

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

Смежные вопросы