Dies ist eine alte Version des Dokuments!


Massnahmen um die Latenz / Jitter zu reduzieren

C-States deaktivieren

Hintergrundinformationen

C-States = Power-Safe

Mit der Software i7z kann überprüf werden, ob die Prozessoren in die States C3 und C6 wechseln. Wenn sie das machen, dann sollte sie deaktivert werden.

IntelInit Treiber deaktivieren

Folgende Kernel Parameter setzen:
cpuidle.off=1
intel_idle.max_cstate=0

Die Datei /etc/default/grub öffnen.
GRUB_CMDLINE_LINUX=„“
mit den Argumenten ergänzen:
GRUB_CMDLINE_LINUX=„cpuidle.off=1 intel_idle.max_cstate=0“
Grub updaten:
sudo update-grub
PC neu starten.

Die Kernel Argumente können überprüft werden:
cat /proc/cmdline

Wenn die Prozessoren trotzdem noch in States höher als C1 wechslen, dann müssen sie evt. im Bios deaktivert werden.

Scaling Governor

Der Scaling Governor beeinflusst die CPU Frequenz. powersave versucht immer eine möglichst kleine Frequenz für die CPU zu wählen. Für ein Echtzeitsystem ist das aber ungünstig, da dies zu zusätzlicher Latenzen führen kann. Der performance Governer hält die CPU Frequenz immer bei der Maximalfrequenz und minimiert dadurch die Latenz.

Mit der Applikation cpupower (nicht standardmässig installiert) kann der Governer gesetzt werden:
# cpupower frequency-set -g performance

Alternativ kann der Governer auch ohne eine zusätzliche Applikation gesetzt werden. Allerdings wechselt der Governer spätestens nach einem Neustart wieder auf powersave. Er muss also jedesmal vor dem Start der Echtzeit-Applikation gesetzt werden:
# echo performance | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Mehr dazu unter Arch Linux Wiki