Für verschiedene Anwendungen spielt das Echtzeitverhalten des eingesetzten Controllers eine wichtige Rolle.
Hier wird das Echtzeitverhalten des Raspberry Pi mit dem Programm Cyclictest untersucht. Details sind u.a. im OSADL Howto zu finden.
Thomas Gleixner stellte mit Cyclictest ein Tool zum Test des Echtzeitverhaltens durch Messung der Latenzzeiten von Linux-Systemen zur Verfügung.
Installation auf dem Raspberry Pi:
# sudo apt-get install git
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
# cd rt-tests
# make
Der Aufruf des Cyclictests erfolgt dann durch
# sudo ./cyclictest -m -n -p99 -h10000 -q > hist.txt
Ohne entsprechende Prozessorlast sind die Resultate des Cyclictests aber nur wenig aussagefähig. Deshalb kann mit Hilfe des Programms Hackbench Prozessorlast erzeugt werden.
Von einer weiteren Konsole wird zusätzlich zum Cyclictest noch Hackbench mehrfach hintereinander gestartet.
# sudo ./hackbench -f 10 -s 10
Die Auswertung des Ergebnisfiles hist.txt zeigt folgende Resultate:
# Total: 000032687
# Min Latencies: 00018
# Avg Latencies: 00047
# Max Latencies: 10944
# Histogram Overflows: 00002
Die mittlere Latenzzeit bei ca. 32000 Messungen liegt bei 47 us.
Die maximale Latenzzeit liegt allerdings bei fast 11 ms, auch wenn nur 2 Latenzzeiten oberhalb von 9999 us liegen.
Für Worst Case Betrachtungen ist aber allein diese Zeit heranzuziehen.
Verbesserungen des Verhaltens können hier nur durch einen RT-Kernel erreicht werden.