Menu

RealTime

cyclictest (1)
Claus Kuehnel
Attachments
cyclictest.png (3728 bytes)

Echtzeitverhalten

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.

Latenzzeiten


Related

Wiki: Home

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.