Ändern Sie den Linux Kernel-Timer

7

Ich muss eine latenzempfindliche Anwendung ausführen, und ich wurde gebeten, die Timerauflösung auf 1000 Hz oder mehr zu ändern. Ich habe im Internet ein wenig gesucht und Seiten über CONFIG_HZ etc gefunden.

Aber es gibt anscheinend auch einige andere Einstellungen in der Datei, also möchte ich sicher sein, dass ich die Einstellungen nicht durcheinander bringe. Ich poste hier eine Ausgabe

%Vor%

Also, die zweite Zeile, "# CONFIG_HZ_1000 ist nicht gesetzt" bedeutet, dass 1000Hz nicht unterstützt wird? Muss ich nur CONFIG_HZ und nicht CONFIG_HZ-250 ändern?

PS: Ich benutze den Kernel 2.6 (ubuntu jaunty) auf einem Geode-Prozessor.

EDIT1: Ich habe Code von Ссылка auf meinem Desktop-Rechner und der Entwicklung ausgeführt Maschine. Der Code ist angeblich ein genaues Maß dafür, wie schnell ein Timer das System aushalten kann. Die Ausgabe betrug ungefähr 183 Hz (auf der Entwicklungsmaschine). Ist also das Ändern des Timers sinnvoll?

    
apoorv020 10.02.2011, 10:59
quelle

2 Antworten

14

Bearbeiten Sie .config nicht direkt, es sei denn, Sie sind ein Kbuild-Experte (und wenn Sie das fragen, sind Sie kein Kbuild-Experte). Führen Sie stattdessen make menuconfig oder make xconfig aus, um das menübasierte Konfigurationssystem zu laden. Alternativ dazu führt make config einen zeilenbasierten Konfigurationsprozess durch (in dem Sie mehrere hundert Fragen dazu stellen, was zu konfigurieren ist - nicht empfohlen). Die entsprechende Option steht unter "Prozessortyp und Eigenschaften" als "Timerfrequenz".

Das heißt, das ist vielleicht nicht notwendig. Modernes Linux kann hoch aufgelöste Ereignistimer ( CONFIG_HIGH_RES_TIMERS ) verwenden, um Timer mit niedriger Latenz zu erreichen, auch ohne die Timerfrequenz zu erhöhen. Bei einem ticklosen System ( CONFIG_NO_HZ ) hat die Timer-Frequenz überhaupt keine Auswirkungen.

Andererseits bin ich mir nicht sicher, welche Zeitgeber Geode-CPUs unterstützen. Vielleicht möchten Sie cyclictest mit verschiedenen Kernel-Konfigurationen ausführen, um zu sehen, was Sie für eine niedrige Latenzzeit benötigen. Der Test, den Sie ausgeführt haben, testet die maximale Versandhäufigkeit, nicht die Versandlatenz, daher wäre ein Vergleich mit zyklischen Testergebnissen interessant. Wenn Sie wirklich niedrige Latenz benötigen, ist möglicherweise auch das CONFIG_PREEMPT_RT Patchset von Interesse .

    
bdonlan 10.02.2011, 14:31
quelle
7

Um die Timereinstellung zu ändern, müssen Sie den Kernel neu kompilieren. Ändern Sie die Option in einem Standard-Menükonfigurationstool und nicht in der Textdatei.

/boot/config... Dateien sagen nur, was in der spezifischen Kernel-Binärdatei installiert ist. Dies ist keine Konfigurationsdatei, die Sie ändern können.

    
viraptor 10.02.2011 14:05
quelle

Tags und Links