Cool&Quiet

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Cool&Quiet in den Distributions-Kernels)
K (Auch bei niedrigerer Last hochschalten)
 
(12 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 24: Zeile 24:
 
* modprobe cpufreq-ondemand
 
* modprobe cpufreq-ondemand
 
* echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 
* echo ondemand >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 
 
Damit Cool&Quiet beim Systemstart automatisch aktiviert wird, können diese Befehle in ein Startskript übernommen werden. Bei [[LinVDR]] können sie zum Beispiel an's Ende der Datei /etc/init.d/rcStart hinzugefügt werden.
 
  
 
Wird eines der beiden Module nicht gefunden, so ist die Kernelkonfiguration anzupassen (siehe unten).
 
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 ===
 
=== Kernel-Konfiguration für Cool&Quiet ===
Zeile 44: Zeile 42:
  
  
=== Cool&Quiet in den Distributions-Kernels ===
 
  
* Ubuntu, SuSE 10.0: Kernel ist bereits C&Q-fähig
 
* LinVDR:
 
** Funktioniert nicht mit Original-Kernel
 
** DarkAngel-Kernel 2.6.12.2 ist bereits C&Q-fähig
 
** Dr.Seltsam-Kernel enthält die nötigen Module. Müsste also gehen. Ungetestet.
 
  
 
== Probleme, Tipps und Tricks ==
 
== Probleme, Tipps und Tricks ==
  
 
=== Trotz hoher CPU-Last wird nicht hochgetaktet ===
 
=== 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:
+
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 1 >/sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice
+
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.
 
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.
  
Zeile 62: Zeile 54:
  
 
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:
 
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
+
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.
 
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.
  
Zeile 68: Zeile 60:
  
 
Auf der Konsole kann man sich die aktuelle Taktfrequenz mit folgendem Befehl anzeigen lassen (relevant ist der Wert in der Zeile "cpu MHz"):
 
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
+
cat /proc/cpuinfo
  
 
Für eine Anzeige innerhalb der [[VDR]]-Software empfiehlt sich das [[Sysinfo-plugin]].
 
Für eine Anzeige innerhalb der [[VDR]]-Software empfiehlt sich das [[Sysinfo-plugin]].
Zeile 74: Zeile 66:
 
== Links ==
 
== Links ==
  
* [http://de.wikipedia.org/wiki/Cool%27n%27Quiet Artikel zu Cool&Quiet in der Wikipedia]
+
* {{wikipedia2|Cool%27n%27Quiet|Artikel zu Cool&Quiet in der Wikipedia}}
* [http://www.ueberdosis.de/linux/powernowk8.html gute Seite über Cool&Quiet]
+
 
[[Kategorie:Begriffserklärungen]]
 
[[Kategorie:Begriffserklärungen]]

Aktuelle Version vom 25. September 2013, 19:28 Uhr

Inhaltsverzeichnis

[Bearbeiten] 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.

[Bearbeiten] 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.

[Bearbeiten] 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.

[Bearbeiten] 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

[Bearbeiten] 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)



[Bearbeiten] Probleme, Tipps und Tricks

[Bearbeiten] 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.

[Bearbeiten] 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.

[Bearbeiten] 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.

[Bearbeiten] Links