# CONFIG_CPU_FREQ_GOV_ONDEMAND

## tam

Hi!

Habe auf meinem Thinkpad T23 schon länger perfektes Speedstep mit cpudynd. Nun sehe ich CONFIG_CPU_FREQ_GOV_ONDEMAND im neuen 2.6.9 kernel. Für was ist das gut, kann das cpudynd ablösen?

----------

## Earthwings

Genau. Wird langsam Zeit, dass mal jemanden einen Test durchführt, welcher der verwendeten Algorithmen wo seine Vor-/Nachteile hat.

----------

## tam

Ich kann das gerne mal probieren. Also einfach den cpudynd beenden, und hoffen, dass der ONDEMAND das jetzt macht. Das war's?

----------

## Earthwings

cpudynd beenden und dann 

```
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
```

----------

## tam

Hmm, irgendwie funktioniert das nicht. Ich habe im kernel default 'userspace' eingestellt, wenn ich jetzt 

```
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
```

eingebe, steht im /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor immer powersave, auch wenn mein Läppi auf der anderen Console heftigst am emergen ist.

----------

## Earthwings

Läuft noch irgendwas anderes - cpufreqd, speedfreqd, powernowd, klaptopdaemon, ...?

----------

## tam

Nein, weder noch.

----------

## brodo

kleiner Hinweis: ondemand[*] soll nicht cpudyn oder speedfreqd oder was es da auch immer gibt ablösen, sondern eine alternative Möglichkeit bieten. Je nach Testergebnissen, persönlichen Vorlieben usw. kann dann jede(r) den von ihm/ihr bevorzugten Modus wählen.

[*] und weitere in-kernel governors, die z.T. noch in Entwicklung sind und z.B. auf AMD-Systemen Vorteile erzielen sollen.

----------

## brodo

 *tam wrote:*   

> Hmm, irgendwie funktioniert das nicht. Ich habe im kernel default 'userspace' eingestellt, wenn ich jetzt 
> 
> ```
> echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
> ```
> ...

 

Welcher cpufreq-Treiber läuft denn?

----------

## Sas

Also ich nutze ondemand jetzt schon mehrere Tage und bin sehr zufrieden. Das System wirkt deutlich agiler als es das bei mir mit cpufreqd tat. Damit meine ich nicht, dass die Taktrate generell höher ist, sondern dass es unter Last schneller hochtaktet.

Ich weiß, dass man das alles via /etc/cpufreqd.conf einstellen kann, allerdings frisst der daemon dann mitunter selbst einige Prozent Rechenzeit (auf meinem XP-M 2000) und das ist eindeutig zu viel.

Die Kehrseite der Medallie sind natürlich die enormen Einbußen an Flexiblität im Bezug auf laufende Prozesse, am Stromnetz oder nicht und Ladestand des Akkus.

Allerdings bin ich mittlerweile sowieso der Meinung, die CPU sollte immer so viel leisten können, wie sie gerade muss. Aber nicht mehr. D.h. wenn ich im Akkubetrieb was kompiliere, will ich auch vollen Takt, denn bei niedrigerem wird zwar weniger Engergie verbraucht, allerdings brauche ich auf der anderen Seite wieder mehr, da Festplatte, Display etc. genauso länger laufen müssen wie der Prozessor, bis er fertig ist. Am Stromnetz aber möchte ich umgekehrt auch nicht mehr Takt als unbedingt nötig, dann nervt der Lüfter nur.

Fazit: Ich bin von ondemand wirklich überzeugt. Es ist unkompliziert und tut genau, was es soll.

----------

## brodo

 *Sas wrote:*   

> Die Kehrseite der Medallie sind natürlich die enormen Einbußen an Flexiblität im Bezug auf laufende Prozesse, am Stromnetz oder nicht und Ladestand des Akkus.

 

Was das Stromnetz betrifft, kann man mittels "acpid" ein skript aufrufen, dass dann entweder scaling_max_freq oder andere Werte des ondemand-governors variiert.

----------

## tuxian

 *brodo wrote:*   

>  *Sas wrote:*   Die Kehrseite der Medallie sind natürlich die enormen Einbußen an Flexiblität im Bezug auf laufende Prozesse, am Stromnetz oder nicht und Ladestand des Akkus. 
> 
> Was das Stromnetz betrifft, kann man mittels "acpid" ein skript aufrufen, dass dann entweder scaling_max_freq oder andere Werte des ondemand-governors variiert.

 

Ja, ich machs jetzt so mit acpi (/etc/acpi/default.sh):

```

#!/bin/bash

sleep 5

action="`cat /proc/acpi/ac_adapter/ADP1/state | cut -c 26-`"

if [ "$action" == "on-line" ]

then

        echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

        /etc/init.d/vixie-cron start

        /etc/init.d/laptop-mode stop

        /sbin/swapon -a

        hdparm -q -S253 /dev/hda

#        iwconfig eth0 power off

        /usr/X11R6/bin/xset dpms 0 0 600

        logger "Setting Performance Mode"

else

        echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

        /etc/init.d/laptop-mode start

        /etc/init.d/vixie-cron stop

        /sbin/swapoff -a

        hdparm -q -S12 /dev/hda

#        iwconfig eth0 power on power max period 3

        /usr/X11R6/bin/xset dpms 600 0 3600

        logger "Setting Powersave Mode"

fi

```

Damit hab ich im Netzbetrieb den ondemand-Governor und im Akkubetrieb den powersave-Governor.   :Smile: 

----------

