Preempt_RT

Vorwort

Linux Preempt_RT

Preempt_RT ist ein von Ingo Molnar betreuter Patch für den Linux Kernel. Dieser modifiziert den Kernel so, dass dieser (beinahe) vollständig präemptiv wird. Dazu werden die klassischen Kernel Spinlocks durch Mutexe ersetzt, welche Prioritätsvererbung unterstützen. Ausserdem wird die Behandlung aller Interrupts in eigene Kernel-Threads ausgelagert. Die Präsentation Linux und Echtzeit von Jan Altenberg bietet eine sehr gute und kurze Zusammenfassung bezüglich den beiden Varianten Preemt RT und Xenomai.

Realtime Allgemeine Hinweise

Die FAQs und die beiden HOWTOs HOWTO: Build an RT-application und RT PREEMPT HOWTO des Real-Time Linux Wiki bieten eine gute Einführung in diverse Aspekte und Probleme von Realtime. Die Hinweise Messung RT fassen zusätzlich noch einige Punkte zusammen, die nicht nur bei der Messung der RT-Performance wichtig sind, sondern auch im allgemeinen Umgang mit Realtime.

Bau von RT Kernel

Siehe grüne Box „Beispiele für den Bau von RT-Kernel“ für diverse Beispiele.

Messung der RT-Performance

Bei RT Systemen ist die Latenz ein wichtiges Mass. In diesem Zusammenhang wird auch oft von der maximalen Latenz gesprochen. Es ist allerdings nicht ganz einfach die maximale Latenz zu messen.

Schwierigkeiten bei der Messung der RT-Performance

Diverse Hinweise, die beim Messen der RT-Performance beachtet werden solten, sind im Artikel Hinweise Messung RT gesammelt.

Cyclictest

Mit dem Cyclictest kann die maximale Latenz gemessen werden. Mehr dazu auf der Seite Cyclictest.

EEROS

EEROS bietet eine Möglichkeit, die effektive Latenzen von einer EEROS-Applikation zu messen. Siehe Projektwebseite.

Zu erwartende Ergebnisse

Auf der Wiki Seite Cyclictest sind bereits einige Ergebnisse dokumentiert. Eine weitere sehr gute Quelle bietet das Open Source Automation Development Lab kurz OSADL. In ihrer QA Farm werden diverse Prozessoren auf ihre RT Performance getestet. Die Ergebnisse werden veröffentlicht. In der Hardware Übersicht sind alle getesteten Prozessoren aufgelistet.

Künstliche Belastung für RT-Systeme

Wenn das System nicht unter Realbedingungen gemessen werden kann, kann es künstlich belastet werden. Mehr dazu unter Künstliche Last.

Einflüsse auf die Latenz

Im HOWTO: Build an RT-application sind diverse Einflüsse auf die Latenz aufgelistet. Zusätzlich können noch andere Anwendungen, wie zum Beispiel eine SSH-Verbindung, die Latenz negativ beeinflussen, wenn die Priorität falsch gewählt wird.

Massnahmen um die Latenz / Jitter zu reduzieren