2011-02-10 17 views
7

Muszę uruchomić aplikację wrażliwą na opóźnienia i poproszono mnie o zmianę rozdzielczości timera na 1000 Hz lub więcej. Szukałem trochę w sieci i znalazłem strony o CONFIG_HZ itd.Zmień timer jądra Linuksa

Jednak w pliku znajdują się również inne, podobne ustawienia, więc chcę mieć pewność, że nie zepsuję ustawień w górę. Jestem delegowania jakieś wyjście tutaj

$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 

Tak samo drugą linię „# CONFIG_HZ_1000 nie jest ustawiony”, oznacza to, że 1000Hz nie jest obsługiwany? Czy muszę zmienić tylko CONFIG_HZ, a nie CONFIG_HZ-250?

PS: Używam jądra 2.6 (ubuntu jaunty) na procesorze Geode.

EDIT1: Uruchomiłem kod z http://www.advenage.com/topics/linux-timer-interrupt-frequency.php na moim komputerze stacjonarnym i maszynie programistycznej. Podobno kod jest dokładną miarą tego, jak szybko timer może wytrzymać system. Moc wyjściowa wynosiła w przybliżeniu 183 Hz (na maszynie programującej). Czy zmiana timera będzie miała sens?

Odpowiedz

14

Nie edytuj bezpośrednio .config, chyba że jesteś ekspertem Kbuild (a jeśli o to pytasz, nie jesteś ekspertem Kbuild). Zamiast tego uruchom make menuconfig lub make xconfig, aby załadować system konfiguracji oparty na menu. Alternatywnie, make config wykona liniowy proces konfiguracji (w którym prosi cię o kilkaset pytań o to, co skonfigurować - niezalecane). Odpowiednia opcja jest pod "Typ procesora i funkcje" jako "Częstotliwość czasomierza".

To powiedziawszy, może to nie być konieczne. Współczesny system Linux może korzystać z timerów zdarzeń wysokiej rozdzielczości (CONFIG_HIGH_RES_TIMERS), aby uzyskać czasomierze o niskim opóźnieniu, nawet bez zwiększania częstotliwości zegara. W systemie bezszczytowym (CONFIG_NO_HZ) częstotliwość zegara ma niewielki wpływ.

Z drugiej strony nie jestem pewien, jakie mają procesory z obsługą czasu. Możesz uruchomić cyclictest z różnymi konfiguracjami jądra, aby zobaczyć, co potrzebujesz, aby uzyskać niską wydajność latencji. Test, który przeprowadziłeś, testuje maksymalną częstotliwość wysyłki, a nie opóźnienie wysyłki, więc porównanie z wynikami z cyklu jest bardzo interesujące. Jeśli potrzebujesz małej wartości opóźnienia,może również być interesujące.

7

Aby zmienić ustawienie timera, należy przekompilować jądro. Zmień opcję w standardowym narzędziu konfiguracji menu, a nie w pliku tekstowym.

/boot/config... pliki mówią tylko, co jest zainstalowane w danym binarnym jądrze. To nie jest plik konfiguracyjny, który możesz zmienić.