Centrino SpeedStep

marten

Well-Known Member
Sagt mal, gibt es eine Moeglichkeit den Takt vom Pentium M in einem Centrino-NB manuell oder automatisch herunterzutakten?
Habe bisher nur fuer den AMD etwas gefunden. Weis nicht so recht, wonach ich suchen soll, da ich noch 'BSD-Neuling' bin.
Marten
 
habe aber leider keinen unterpunkt X.cpu.performance
habe ich da irgendetwas nicht geladen?


bash-2.05b# sysctl hw.acpi
hw.acpi.supported_sleep_state: S1 S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S1
hw.acpi.lid_switch_state: S1
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 5
hw.acpi.s4bios: 0
hw.acpi.verbose: 0
hw.acpi.disable_on_poweroff: 1
hw.acpi.reset_video: 1
hw.acpi.cpu.cx_supported: C2/1 C3/1
hw.acpi.cpu.cx_lowest: 0
hw.acpi.cpu.cx_history: 1420411/0 0/0
hw.acpi.acline: 1
hw.acpi.battery.life: 100
hw.acpi.battery.time: -1
hw.acpi.battery.state: 0
hw.acpi.battery.units: 1
hw.acpi.battery.info_expire: 5
 
Wird denn Deine CPU als Pentium M erkannt?
Was steht in der Kernelkonfigurationsdatei?

Gruss...

Der Indy
 
ja, die cpu wird als pentium m erkannt:
hw.model: Intel(R) Pentium(R) M processor 1300MHz

und an der kernelkonfiguration hab ich nix geaendert. ist alles das original, was bei der 5.2.1-RELEASE dabei ist.
 
Hm, dann kann es u.U. sein, daß Dein ACPI-BIOS diese Dinge einfach nicht korrekt meldet.
Das wäre die einzige Erklärung, die ich noch habe.

Gruss...

Der Indy
 
Mein Centrino hat das mit der 5.2.1 wunderbar gemacht.
Das Release ist nicht das Problem.
Ich tippe auf Fehler im ACPI, nicht in FreeBSD ;)

Gruss...

Der Indy
 
Bist du sicher, dass der den Takt auch wirklich runter- bez. rauf schraubt? Ich habe hier ein IBM Thinkpad X31 und FreeBSD 5.2.1. sysctl hw.acpi sagt mir auch:
Code:
hw.acpi.cpu.max_speed: 8
hw.acpi.cpu.current_speed: 8
hw.acpi.cpu.performance_speed: 8
hw.acpi.cpu.economy_speed: 4
hw.acpi.cpu.cx_supported: C1/1 C2/1 C3/85
hw.acpi.cpu.cx_lowest: 0
hw.acpi.cpu.cx_history: 1189229/0 0/0 0/0
und ich kann via sysctl hw.acpi.cpu.economy_speed=8 auch brav den Speed im Economy Mode hochsetzen, nur macht er dann das halt nicht :D Sprich er bleibt bei seinen 600MHz (im BIOS so eingestellt) anstatt auf 1,4GHz rauf zu schalten. AFAIK hat auch erst OpenBSD Centrino Power Management Support.
 
Hm, ich hatte schon den Eindruck, daß das funktionierte.
Zumindest ist mein Laptop um Längen schneller, wenn ich die Kiste an den Strom stöpsele.

Vielleicht ist das aber auch nur Wunschdenken *smirk*

Der Indy
 
falls es etwas hilft: unter linux funktioniert es. nur will ich nicht linux auf das nb tun.
gruss, marten
 
Es war Wunschdenken.
*seufz*

Ja, mit Linux klappt das prima.
Das habe ich aber nur noch drauf, weil die VMware 4 noch nicht unter FreeBSD läuft.
Und die will ich haaaaaaben *g*.

Der Indy
 
Juhu, ich habe auf uname -r FreeBSD-CURRENT aktualisiert und habe jetzt bei sysctl hw.acpi neu:
Code:
hw.acpi.cpu.throttle_max: 8
hw.acpi.cpu.throttle_state: 1
mit sysctl hw.acpi.cpu.throttle_state=1 kann ich die CPU runtertakten, ubench -c sagt mir dann:
Code:
Ubench CPU:     6455
Also in etwa ein 166Mhz Pentium :D Und prompt ist auch Firefox schleppend langsam und braucht ewigs um eine Site zu laden. mit sysctl hw.acpi.cpu.throttle_state=8 scheint die CPU wieder mit vollem Takt zu fahren, ubench sagt dazu
Code:
Ubench CPU:    73628
Jetzt muss ich mir nur noch was Daemon-mässiges zusammenbasteln welcher das Runter- und Rauftakten on demand erledigt aber auf jeden Fall sieht das schon mal sehr nice aus :D
 
Hm... so richtig hab ich keine traute dran, CURRENT auf meinem Rechner zu installieren.

Werde wohl noch etwas warten müssen.
Weiß denn jemand schon, ob's neue Termine für 5.3 gibt?

Gruss...

Der Indy
 
Sehr interessant.

Seit FreeBSD 5.2.1-p8 funktioniert bei mir das Speedstepping mit Intel's Pentium M.

Ich habe einen ASUS M2400-N mit Centrino 1600 MHz.

Im Performance-Modus meint Ubench:

Ubench CPU: 86109
Ubench MEM: 100299
--------------------
Ubench AVG: 93204

Ziehe ich den Stecker, hüpft er in den Economy-Modus und Ubench sagt:

Ubench CPU: 31199
Ubench MEM: 35723
--------------------
Ubench AVG: 33461

Stecke ich den Stecker wieder rein, bringt Ubench wieder die gleichen Resultate wie beim ersten Test.
Fetzt.

Gruss...

Der Indy
 
Ich hab est und estctrl aus den Ports installiert. Es scheint wunderbar zu funktioniern. Beim booten sagt mir der Est 600MHz. Wenn ich nun etwas kompile wird der Prozessor schneller, aber auch viel heißer und der Akku schneller leer.
Allerdings bringt mir ubench sehr seltsame Werte:

Ubench CPU: 0
Ubench MEM: 85299

Ubench AVG: 42649

Hat vielleicht einer von euch ne erklärung für dieses Ergebnis?
 
Ich bin die Anleitung jetzt auch mal durchgegangen (Pentium-M 715 / 1,5 auf Acer TM 4001 FBSD 5.3-RELEASE).
estctrl funzt nicht, weil AC Line nicht existiert (angeblich wird das gefixt bei estctrl bzw. irgendwann erkennt das vielleicht ACPI...)
Jetzt frage ich mich allerdings, wozu ich Throttling und Enhanced Speedstep habe. estctrl setzt ja nur cur_freq (bei mir zwischen 600 und 1500). Händisch funktioniert das auch. Allerdings wenn ich mit Throttling von 8->1 schalte, läuft der Rechner noch langsamer. Frequenz auf 600 und Throttling auf 1 und überhaupt wahnsinnig langsam. Habe keine tollen Benchmarks, einfach nur Firefox gestartet. Von 1,5 - 30 Sekunden reicht mir das ohne exakte Zahlen. (ubench liefert ähnliches Ergebnis).
Wieso steuert estctrl nicht die Frequenz und Throttling an? Ist das böse? Wozu gibt es Throttling noch, wenn man nur die Frequenz steuert?
 
hi,

das problem, dass estctl nicht startet, weil es "hw.acpi.acline" nicht findet (habe ACPI deaktiviert, weil meine Festplatte sonst beim abschlaten boese gerausche macht), hatte ich auch. ich habe dann im source code von estctl die entsprechende zeile ersetzt:

in: /usr/ports/sysutils/estctrl/work/estctrl-0.7/estctrl.c
(so ungefaer in zeile 180)

Code:
if (sysctlbyname("hw.acpi.acline", &acline, &len, NULL, 0))
    err(1, "Error reading AC line status");

durch

Code:
if (sysctlbyname("hw.acpi.acline", &acline, &len, NULL, 0))   
    acline = 1; // mode_ac

dann neu compiliert und installier. bislang laueft es ohne probleme.
(ich hoffe zu midest, dass es nur die stelle war. ist leider schon eine weile her, als ich das bei mir geaendert habe und ich habe im moment nicht die zeit mir das noch mal genau anzusehen)


das problem dabei ist nur, dass estclt dann nicht mehr den modus wechselt wenn man das netzteil abzieht oder anschliesst. das habe ich dann mit hilfe von apmd (zu mindest teilweise) geloest.



teuk
 
Ja, das habe ich hinbekommen (die neue estctrl Version gab's ja eh schon.....).

Was mich nur wundert: warum wird nur die Frequenz geändert und nicht auch Throttling? Ich bin laufend im Throttling State 8, Frequenz sinkt auf 600 (statt 1500). Wenn ich idle oder im Editor dahintippsle reicht doch auch 600MHz und Throttling State 1 (12,5%)...
 
ShitHappens schrieb:
Ubench CPU: 0
Ubench MEM: 85299

Ubench AVG: 42649

Hat vielleicht einer von euch ne erklärung für dieses Ergebnis?

Das liegt daran, dass ubench Müll ist. Ich habe ähnliche Fehlverhalten bei mir auf nem stinknormalen PC.
 
Jetzt frage ich mich allerdings, wozu ich Throttling und Enhanced Speedstep habe.
Ich schmökerte in der ACPI-Spezifikation und versuche Dir eine möglichst technisch-korrekte Antwort zu geben:

- Throttling
Mit Throttling wird der Prozessor (hardwaremässig) vor Überhitzung geschützt. Auch das Betriebssystem kann Throttling anfordern. Bei aktivierten Throttling läuft der Prozessor nur während einem bestimmten Zeitintervall. Ausserhalb dieses Zeitintervalls steht der Prozessor still. Man benutzt Throttling für das sogenannte "passive Kühlen". Beim "passiven" Kühlen springt, im Gegensatz zum aktiven Kühlen, bei erhöhter Temperatur kein Lüfter an. Passives Kühlen wird über eine Herabsenkung der Prozessor-Performance mittels "Prozessor-Zwangspausen" erreicht.

- Enhanced Speedstep
Das Betriebssystem kann mit Enhanced Speedstep die Prozessorgeschwindigkeit (Prozessortaktfrequenz und Prozessorspannung) beeinflussen. Je nach Prozessorgeschwindigkeit frisst der Prozessor mehr oder weniger Batteriesaft. Die Anpassung der Prozessorgeschwindigkeit sollte über die aktuelle Prozessorlast geschehen. Bei grosser Last schraubt man die Prozessorgeschwindigkeit hoch, bei Leerlauf senkt man sie auf ein Minimum. Enhanced Speedstep ist also "das" Mittel um das Maximum aus Prozessorperformance und Batterielebensdauer herauszuholen!

Eine verständliche, kurze und erst noch deutsche Zusammenfassung zu ACPI findest Du unter:
http://www.tecchannel.de/hardware/1515/index.html
Wenn Du weitere Informationen zu ACPI benötigst, kommst Du (leider) nicht um die ACPI-Spezifikation unter www.acpi.info herum.

Informationen und eine FreeBSD-Anleitung zu Enhanced Speedstep gibt es unter:
http://wiki.bsdforen.de/index.php/FreeBSD_-_Pentium_M
ftp://download.intel.com/design/network/papers/30117401.pdf
 
Zuletzt bearbeitet:
Hi, danke für die detaillierte Antwort!

Dann hab' ich das eh richtig verstanden mit E Speedstep und Throttling. Nur so stellt sich mir um so mehr die Frage, warum man nicht beides gleichzeitig verwendet? Wenn ich im Editor tippe, brauch' ich doch keine 600MHz, da wäre mir zusätzliche passive Kühlung durch Throttling lieber.
Ich habe Throttling zusätzlich über sysctrl aktiviert, Leistung wird auch wirklich noch weiter runtergeschraubt. Klingt doch brauchbar? Oder ist das kompletter Mist, was ich mir zusammendenke?
 
Zurück
Oben