Cool&Quiet

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Was ist Cool&Quiet

Cool&Quiet ist eine von AMD benutzte Technik, die es erlaubt, die Taktfrequenz und damit auch die Betriebsspannung des Prozessors abhängig von der aktuellen Auslastung zu regeln. Der Vorteil dieser Technik ist, dass bei niedriger Last heruntergetaktet werden kann und damit weniger Strom verbraucht und weniger Abwärme erzeugt und weniger Kühlung benötigt wird. Diese Taktung läuft automatisch, ohne dass der Benutzer eingreifen muss - im Idealfall merkt er nicht mal etwas davon.

Welche Prozessoren werden unterstützt

Cool&Quiet wird von folgenden AMD-Prozessoren unterstützt:

  • Athlon64
  • Sempron 3000+ und höher (nicht jedoch auf Sockel A)
  • Mobile Athlon64 und Mobile Sempron
  • Turion64

Außerdem muss das Mainboard Cool&Quiet unterstützen. Bei manchen Boards ist dazu ein BIOS-Update notwendig.

Cool&Quiet in Linux

In Linux ist Cool&Quiet über das Kernel-Feature "cpufreq" in Verbindung mit den Kernel-Modulen "powernow-k8" (Zugriff auf die Hardware) und "cpufreq-ondemand" (Governor, der bestimmt, wann welche Taktfrequenz geschaltet werden soll) implementiert.

Cool&Quiet aktivieren

Wenn der Kernel passend konfiguriert ist, kann Cool&Quiet mit folgenden Befehlen aktiviert werden:

  • modprobe powernow-k8
  • modprobe cpufreq-ondemand
  • echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Wird eines der beiden Module nicht gefunden, so ist die Kernelkonfiguration anzupassen (siehe unten). Ob ein laufender Kernel mit "Frequency scaling"-Unterstüzung kompiliert wurde erfährt man durch folgenden Befehl:

zcat /proc/config.gz | grep 'FREQ|POWERNOW|SPEEDSTEP' | less

Kernel-Konfiguration für Cool&Quiet

Folgende Kernel-Optionen sind in der Kernel-Konfiguration unter "Power management options" anzuwählen. Danach ist der Kernel und die Kernel-Module neu zu übersetzen.

 x "CPU Frequency scaling".
 x "CPU frequency translation statistics"
     x "CPU frequency translation statistics  details"
 "Default CPUFreq governor"
     x "performance governor"
 M "ondemand cpufreq governor"       (--> erzeugt Modul cpufreq-ondemand)
 M "AMD Opteron/Athlon64 PowerNow!"  (--> erzeugt Modul powernow-k8)



Probleme, Tipps und Tricks

Trotz hoher CPU-Last wird nicht hochgetaktet

Dieses Problem tritt auf, wenn Prozesse mit nice eine niedrige Priorität bekommen. Standardmäßig taktet der ondemand-Governor den Prozessor für solche Prozesse nicht hoch. Darunter leidet dann die Performance bei vdrconvert, noad und ähnlichen Dingen erheblich. Für VDRs macht es daher Sinn, dieses Feature abzuschalten:

echo 0 >/sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load

Nach Eingabe dieses Befehls wird auch für Prozesse mit niedriger Priorität auf höchste Leistung geschaltet. Der Befehl kann in die Startskripte direkt hinter die anderen Cool&Quiet-Befehle übernommen werden.

Auch bei niedrigerer Last hochschalten

Standardmäßig schaltet der ondemand-Governor die CPU ab einer Auslastung von 80% auf die höchste Stufe. Will man schon bei niedrigerer Auslastung volle Power, so lässt sich das wie folgt erreichen:

echo 30 >/sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold

Nach Eingabe dieses Befehls erreicht die CPU schon bei 30% Auslastung die volle Geschwindigkeit. Statt "30" kann man natürlich auch jeden anderen Wert zwischen 0 und 100 angeben.

Aktuelle Taktfrequenz anzeigen

Auf der Konsole kann man sich die aktuelle Taktfrequenz mit folgendem Befehl anzeigen lassen (relevant ist der Wert in der Zeile "cpu MHz"):

cat /proc/cpuinfo

Für eine Anzeige innerhalb der VDR-Software empfiehlt sich das Sysinfo-plugin.

Links