2011-02-10 18 views
7

Tengo que ejecutar una aplicación sensible a la latencia y se me ha pedido que cambie la resolución del temporizador a 1000 Hz o más. Busqué en la red un poco y encontré páginas sobre CONFIG_HZ, etc.Cambiar el temporizador del núcleo de Linux

Sin embargo, también hay otras configuraciones relacionadas en el archivo, así que quiero asegurarme de no estropear la configuración arriba. Estoy publicar alguna salida aquí

$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 

Lo mismo sucede con la segunda línea, "# CONFIG_HZ_1000 no está establecido", quiero decir que 1000 Hz no es compatible? ¿Debo cambiar solo CONFIG_HZ y no CONFIG_HZ-250?

PD: Estoy usando el kernel 2.6 (ubuntu jaunty) en un procesador Geode.

EDIT1: ejecuté un código desde http://www.advenage.com/topics/linux-timer-interrupt-frequency.php en mi máquina de escritorio y en la máquina de desarrollo. El código supuestamente es una medida precisa de qué tan rápido puede sostener un temporizador el sistema. La salida fue aproximadamente 183 Hz (en la máquina de desarrollo). Entonces, ¿será significativo el cambio del temporizador?

Respuesta

14

No edite .config directamente, a menos que sea un experto en Kbuild (y si lo hace, no es un experto en Kbuild). En su lugar, ejecute make menuconfig o make xconfig para cargar el sistema de configuración basado en menús. Alternativamente, make config hará un proceso de configuración basado en línea (donde le preguntará cientos de preguntas sobre qué configurar, no recomendado). La opción relevante se encuentra en "Tipo de procesador y características" como "Frecuencia del temporizador".

Dicho esto, esto puede no ser necesario. Modern Linux puede usar temporizadores de eventos de alta resolución (CONFIG_HIGH_RES_TIMERS) para lograr temporizadores de baja latencia incluso sin aumentar la frecuencia del temporizador. Con un sistema tickless (CONFIG_NO_HZ), la frecuencia del temporizador tiene poco efecto.

Por otro lado, no estoy seguro de qué soporte de temporizador tienen las CPU Geode. Es posible que desee ejecutar cyclictest con varias configuraciones de kernel para ver lo que necesita para obtener un bajo rendimiento de latencia. La prueba que ejecutó prueba la frecuencia máxima de envío, no la latencia de envío, por lo que sería interesante compararla con los resultados de prueba cíclica. Si necesita realmente baja latencia, el CONFIG_PREEMPT_RT patchset también puede ser de su interés.

7

Para cambiar la configuración del temporizador, debe recompilar el kernel. Cambie la opción en alguna herramienta de configuración de menú estándar, en lugar de en el archivo de texto.

/boot/config... Los archivos solo le dicen qué está instalado en el kernel específico del binario. Este no es un archivo de configuración que puede cambiar.

Cuestiones relacionadas