PHC Undervolting Thread

Klarheit

Hallo buddabrod,

also deine Version ist 0.5.2, meine Version soll 0.5.2.2 sein.

Nur starte bei mir nichts, auch mit deiner Version erhalte ich folgende Fehlermeldung:

./phctool.py
You need to install pyGTK or GTKv2 or set your PYTHONPATH correctly.
try: export PYTHONPATH= /usr/local/lib/python2.2/site-packages/

Ich kann damit nichts anfangen.

MfG

xsid
 
python-gtk2

Hi,

python-gtk2

hatte ich schon zuvor installiert.
Sie dazu das Nopaste.
 
Was zeigt dir "echo $PYTHONPATH"? Wenss keine Ausgabe gibt, musst du wohl, wie es in der Meldung steht, die Variable anpassen.

Vermutlich liegt bei dir der Python Kram aber in /usr/local/lib/python2.7/site-packages/ oder sowas in der Art. (vermutlich ist das nichtmal in local, sondern nur in /usr/lib/python/blabla )

Edit: Wie gesagt, als nicht-Ubuntu User ist das nicht so einfach Fernsupport zu geben ;)
 
Es zeigt

echo $PYTHONPATH
:/home/xsid/0.5.2-2/phctool/:/home/xsid/0.5.2-2/phctool/phctool.py

Edit: 13.03.2010

Hinweis:

http://www.linux-phc.org/forum/viewtopic.php?f=8&t=11

Administrator


Joined: Wed 9. Jul 2008, 19:57
Posts: 341 PHCTool is made with GTK so it does not work well in KDE.
And PHCTool is not longer maintained. I simple do not have the time for it.

I am waiting for others to continue a GUI.


Es macht also keinen Sinn sich mit phctool auseinander zusetzen.
 
Offensichtlich Käse, weil Python sicherlich nicht in dem phctool Verzeichnis installiert ist ;)

Edit: Wieso willst du das eigentlich unbedingt? Ich habe das oben eigentlich nur so angefügt, selbst benutzen tu ich phctool nicht. Das einzig gute ist, dass es dir direkt die Spannung anzeigt. Viel gewinnen tust du dadurch aber nicht, denn die VIDs kannst du/solltest du eh ohne das Programm ändern.
 
intel-phc-undervolt.bash

Hi buddabrod,

die Vids habe ich mir "intel-phc-undervolt.bash" ausgelesen.

Siehe dazu:

http://openmindedbrain.info/26/10/2010/undervolting-in-ubuntu-10-10-maverick/

This is a guide to Undervolting your Intel CPU under Ubuntu 10.10. For the ones that do not know, Undervolting means taking some of the voltage from the CPU which in return gives a longer battery life and lower temperature during intensive use of the CPU.

Note: this is an copy/update of my old post about undervolting in Ubuntu 10.04 found over here. Be sure to check it out, especially because of the comments, some could be helpful and address possible questions/difficulties you may have.

And what are the negative aspects of Undervolting? Well actually taking some voltage from the CPU could bring in computational problems, basically when taking too much of it the CPU could start mixing 1's and 0's which can crash the entire system (reset needed) or bring in data loss/corruption. Not so good eh? So how is that people manage to do it without causing those side effects?

It depends on every CPU. Because it is not possible to create two CPU's 100% alike in the factory, tests are made to ensure all CPU's sold can work with the voltages specified under all circumstances. The fact is that some of the CPU's can work with voltages many times inferior than others that came from same factory/same box. The trick is to discover the limits of your CPU and set the voltage just a little above this limit and you are good to go.

WARNING because of the negative aspects shown above, by following the steps given below, I am not under any circumstances responsible for any data loss or corruption, damage to the CPU/PC. Those next steps were proven to work for many people around the world, but no guarantee is given that it would work for you without possible side effects. Just make sure that at least you have an updated backup of the data before continuing.


Ok, so now that you accept full responsibilities for the steps below, let's get going. I actually did this several years ago under other version of Ubuntu (using a single core Pentium M CPU back then) and it worked alright, but many things changed since then, we've got multi core CPU's everywhere and the way the undervolting issue is handled in Linux is very different also.

So what do we need? A single or multi core Intel Mobile/Laptop CPU and Ubuntu 10.10 installed on it and some time because it will take a little before having everything configured. Here are the complete steps that worked for me:

1. As we are going to use a custom kernel, we need to add the linux-phc PPA repository, so just open a terminal and execute:
view source
print?
1 $ sudo add-apt-repository ppa:linux-phc/ppa
2 $ sudo apt-get update
Basically they provide the same kernel as the Ubuntu one but with the patch that is capable for Undervolting.
2. Next we need to install the phc kernel, with headers:
view source
print?
1 $ sudo apt-get install linux-generic-phc linux-headers-generic-phc
Ok, now we need to restart and use the installed phc kernel when booting. After restarting, you can check if you are using the phc kernel by using
view source
print?
1 $ uname -r
2 2.6.35-22-generic-phc
If no "phc" appears, then you have to configure grub2 to allow you to chose boot options and select the phc kernel at boot time. This can be done many ways one would be:
view source
print?
1 sudo update-grub
and count the number of lines that says "Found linux image" (first one is 0) and, when you found the phc one, do:
view source
print?
1 sudo gedit /etc/default/grub
then just change the "GRUB_DEFAULT=0" to the number of the entry you found that has phc. Save the file and do a update-grub command again like in the first step. Now you can reboot into the phc kernel.
3. Great, we are using a phc kernel, now we need to add the actual undervolt module, as the kernel comes only with support for it, not the actual module. First we need to download phc-intel offtree module from here. Right now they do not have a compatible version for the 2.6.35 kernel, but give the link a try, maybe by the time you read this post there is already a module that can be used in 2.6.35 kernels. Meanwhile there was a kind user on linux-phc forum that managed to create a module for the 2.6.35 and 2.6.36 kernels. Topic about it here. Direct link to the tar.gz file he kindly shared to the rest of us here. So download and unpack the files anywhere and point the terminal to the directory where you extracted the files and do:
view source
print?
1 $ make prepare
2 $ make
3 $ sudo make install
Right now you should have the module installed, check if everything worked by typing:
view source
print?
1 $ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids
2 40 34 31 27 23 15
If everything worked, you should see some numbers (the ones above are the default ones for my CPU). If not, you may try to restart and check back to see if it works.
4. So right now we are set, the only thing we have to do is... undervolt the CPU.
Now we have to discover the limits of the CPU by lowering it's current voltage one step at a time and set the voltage 4 steps above the critical limit (where the cpu starts to give wrong calculations or the PC simply crashes).

Why four? Well the recommendation was 2 steps above, but with this limit the PC crashed in the same day hours later, so I made it 3 steps, then some days after it crashed again. So I think 4 steps should actually do it. If not, you may increase this value until it suits you.

Ok great now how to find the actual critical limit? There exists a script, created by the community, but it's old and it does not work for multi core CPU's and also in my particular case it sets the voltage directly below this critical limit so the PC crashes instantly.

I updated this script and made it work on multi core CPU's (hopefully it will work for you too), so you just have to download the script, then give it execution permissions and execute it and follow on-screen indications:
view source
print?
1 $ chmod +x intel-phc-undervolt.bash
2 $ ./intel-phc-undervolt.bash
Oh and make sure you close as many applications as possible when executing the script as the system may actually turn instable (it is intended actually) just to prevent any data loss. The script treats all CPU's cores with the same voltages, so if one of them is weaker than the other (does not support such a aggressive undervolting) is this the critical value that the script uses for all of the others, even if they could possibly use a even lower value.
5. After you finished with the script, now you should have a "phc_tweaked_vids" file, containing the acceptable steps for your CPU. Now you only have to make changes permanent (load them at every boot of the pc) by editing /etc/rc.local file:
view source
print?
1 $ sudo gedit /etc/rc.local
and adding one entry for every core you have, something like:
view source
print?
1 echo "23 20 4 4 4 4" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
2 echo "23 20 4 4 4 4" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
3 .
4 .
5 .
6 echo "23 20 4 4 4 4" > /sys/devices/system/cpu/cpu8/cpufreq/phc_vids
just before the "exit 0". Note that "23 20 4 4 4 4" are my values, you have to replace the above with your values, that came from the "phc_tweaked_vids" file. So that's about it. Not too easy, not too complicated.

So... is it worth it? I have done some tests to see if the above actually works as said, so first I tested to see if on battery using powertop application and the CPU temperature I could see any differences. None actually, if the CPU is in idle state, there is no actual gain using undervolting, be it battery or temperature.

But when I've done the test under full load (using 2 burnMMX instances, one for every core) and with the CPU set at it's maximum 2.4Ghz I could see a very very noticeable difference.

First let's see the power drain of the battery in Watts, as indicated by powertop application (with the PC disconnected from the charger, of course):


Wenn ich diese dann wie folgt eintrage:

kdesu kate /etc/rc.local
echo "23 20 4 4 4 4" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
echo "23 20 4 4 4 4" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids

bootet der PHC-Kernel und der PC friert dann ein.

Bei mir habe ich mit dem Script folgende Vids ermittelt: 0 34 30 27 23 17
 
Dann benutze doch die "ermittelten" Werte...

Die von dir angegebenen Werte sind *deutlich* darunter..

Die 0 am Anfang würde ich aber kritisch beäugen und lieber durch was realistisches ersetzen.

Edit: Urpsrüngliche Werte per "cat /sys/devices/system/cpu/cpu1/cpufreq/phc_default_vids" auslesen.

Übrigens sollte das kein PHC Grundlagen Thread werden, sondern ein Installationsthread. Ein eigener Thread wär dafür wohl besser geeignet ;)
 
Installation phctool

Hallo buddabrod,

Du hast mich gefragt warum ich phctool nutzen möchte.

Zitat:

"Die 0 am Anfang würde ich aber kritisch beäugen und lieber durch was realistisches ersetzen."

Genau das wollte ich mit phctool beäugen.

MfG

xsid
 
Da hilft dir phctool aber auch nicht weiter ;)

Übrigens: solche Geschichten sollte man erst machen, wenn man sich etwas ins Thema eingelesen hat. Zumindest reicht es, wenn du mehrere Howtos wie z.B. bei ubuntuusers oder so gelesen hast, damit du grundlegend siehst "ah, der stromhungrigste Zustand kann nicht die geringste Spannung brauchen" :D

Edit: Wie schon in der Anleitung beschrieben, würde ich einfach die maximale Frequenz einstellen, CPU auslasten per mprime und dann die entsprechende VID so weit reduzieren, bis es "bumm" macht. Dann erhöhst du um 2 Schritte und machst das gleiche für die nächste Frequenzsstufe etc.
Nur so weißt du auch, dass die Werte nicht aus dem Nichts kommen :)
 
Geschichten

Guten Morgen,

ich mache solche Geschichten "learning by doing, phctool sollte mir beim Lernen helfen.

Die 3 Watt Differenz bei unseren Geräten vermute ich teilweise in meiner verbesserungswürden PHC Konfiguration.

Was mich auch wunder, wenn das Script "intel-phc-undervolt.bash" ausführe stürzt mein ThinkPad nicht ab und friert auch nicht ein.

Wie lange dauert so ein Durchlauf?

http://paste.ubuntuusers.de/399967/

http://openmindedbrain.info/wp-content/uploads/2010/05/intel-phc-undervolt.bash

MfG

xsid


Edit: Nur ist er gerade abgestürzt,das Script fürhre ich gerade parallel aus.

In der Konsole sieht es wie folgt aus, das ist jetzt der dritte Durchlauf:

http://paste.ubuntuusers.de/399968/

Jetzt der vierte Durchlauf und es sieht sonderbar aus:

Code:
..............................
...............................
Default VIDs: 41 34 30 27 23 17 
Current VIDs: 25 25 18 3 23 17
Testing VID: 3 (748 mV)
...............................
...............................
......./intel-phc-undervolt.bash: Zeile 421:  7266 Beendet                 burnMMX
./intel-phc-undervolt.bash: Zeile 421:  7267 Beendet                 burnMMX

burnMMX instances different than the CPU cores number. (Maybe one crashed)!

Recovering CPU.

Run this script again to continue the optimization.

Gestern wurden von dem Script andere Werte ermittelt:

"0 34 30 27 23 17" heute dagegen bisher -------> "25 25 18 7 2 17"

Eigentlich müßten doch immer die gleichen Werte ermittelt werden, oder irre ich da?

Das Ende sieht so aus:

Code:
Default VIDs: 41 34 30 27 23 17 
Current VIDs: 25 25 18 7 4 0
Testing VID: 0 (700 mV)
...............................
...............................
...............................

The lowest acceptable VID is 0.

Recovering CPU.
./intel-phc-undervolt.bash: Zeile 373:  6271 Beendet                 burnMMX
./intel-phc-undervolt.bash: Zeile 373:  6272 Beendet                 burnMMX

Run this script again to continue the optimization.
xsid@t61:~$ dir
Bilder  Desktop  Dokumente  Downloads  intel-phc-undervolt.bash  Musik  Öffentlich  phc_cur_pos  phc_tweaked_vids  Videos  Vorlagen
xsid@t61:~$ ./intel-phc-undervolt.bash 


This script will optimize your voltages at every speed setting 
by systematically lowering them while stressing the CPU.
Each voltage will be turned down until your system crashes, and the final
setting for that voltage will be 4 VIDs above that to "ensure" stability.

WARNING:
This script will crash your system as many times as there are VIDs to tweak.
You might destroy your hardware, break laws and/or die in vain if you continue.

Do you want to continue? [Y/n/?] Yes
>Found 2 CPU cores.
Multiple cores found, the script will use the
same voltages for all cores, this means final
setting will be 4 VIDs above the weakest core.

Install required packages.
Will use burnMMX (part of cpuburn package) to stress CPU.
Install: cpuburn
> SKIPPED: Already installed

Load VIDs from 'phc_tweaked_vids' file
> Success!
Load position from 'phc_cur_pos'
> Success!
Read available frequencies.
> Success!

Last VID: 0
Increase by +4

Default VIDs: 41 34 30 27 23 17 
Current VIDs: 25 25 18 7 4 4 

All VIDs have been tweaked!
Results are in the file 'phc_tweaked_vids' - use with care.

All done! - Have a nice day.

Können die "Current VIDs: 25 25 18 7 4 4" richtig sein?


Weil ich es nicht genau weiß, werde ich die Werte von gestern und heute mischen, 4 Volt und 0 Volt stimmt bestimmt nicht.

Annahme Current VIDs: 25 25 18 27 23 17


Jetzt meine angepaßte /etc/rc.local

Code:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "25 25 18 27 23 17" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
echo "25 25 18 27 23 17" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
exit 0


Mit der angepaßten /etc/rc.local bootet der T61 stürzt dann aber nach dem starten der KDE Oberfläche ab, "black Screen".


Jetzt habe ich folgende Wert getest: "36 29 25 22 17 12"
Das sind jetzt immer abzügl. 5 von den Default VIDs. Das System läuft bisher einwandfrei.


cat /sys/devices/platform/smapi/BAT0/power_now
-12630


Ein Stromeinsparung kann ich jedoch nicht feststellen.


Aktuell eingestellte VIDs:

xsid@t61:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
77:36 76:29 10:25 8:22 6:17 136:12
xsid@t61:~$ cat /sys/devices/system/cpu/cpu1/cpufreq/phc_controls
77:36 76:29 10:25 8:22 6:17 136:12

Die angepaßten VIDs sind also übernommen, kann ich der Ermittlung von "cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls " trauen?

Warum habe ich keine weitere Stromeinsparung?

Wie finde ich meine richtigen Werte raus? Mit "mprime" bin ich zur Zeit überfordert.

weitere Erfolge, neuer Versuch, VIDs "28 26 13 12 11 15":

/etc/rc.local
Code:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "28 26 13 12 11 15" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
echo "28 26 13 12 11 15" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
exit 0


Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
77:28 76:26 10:13 8:12 6:11 136:15 
cat /sys/devices/system/cpu/cpu1/cpufreq/phc_controls
77:28 76:26 10:13 8:12 6:11 136:15



cat /sys/devices/platform/smapi/BAT0/power_now
-11615

Jetzt 11,6 Watt, ich möchte noch weniger.

Grundsystemwerte-->
Default VIDs: 41 34 30 27 23 17

Erneuter Durchlauf von intel-phc-undervolt.bash ------------------> phc_tweaked_vids -----------------> 0 34 30 27 23 17
 
Bisheriges Fazit

Hallo Stromsparer,

von dem PHC Kernel habe ich mir mehr versprochen.

Jetzt habe ich den Standard Kubuntu Maverick Kernel 2.6.35-27-generic.

Code:
cat /sys/devices/platform/smapi/BAT0/power_now
-12165

Also wozu einen PHC-Kernel, der das System unzuverässliger werden läßt und zudem bei jedem Kernelupgrade neu konfiguriert werden muß?
Für mich macht das keinen Sinn.

Entweder tist der Kernel 2.6.35-27-generic so gut, der PHC-Kernel nicht gut genug oder ich nicht wissend genug.

Was ich aber gar nicht verstehe, die VIDs "28 26 13 12 11 15" funktionieren so enigermaßen.
Die ermittelten Vids "0 34 30 27 23 17", dann angepaßt auf Vids "28 34 30 27 23 17" funktonieren nicht.
Das verwundet mich doch, es würde bedeuten höhere Spannung, weniger Stabilität.
*grübel

MfG

xsid
 
Wie ich sagte.. alleine den Thread zu lesen, hätte geholfen ;)

Du kannst für die niedrigste Taktstufe *keine* Spannung reduzieren und die default Spannung für diese Taktstufe ist insgesamt das Minimum für deine CPU.

Warum benutzt du dubiose Scripts und machst es nicht einmal richtig? Das wäre learning by doing ;)


Du testest immer mal dies, mal das, komplett ohne Systematik.

Machs doch bitte, bitte einmal richtig ;)

Edit: Wenn du dazu fragen hast, dann gerne, aber zu solche Scripts sage ich nichts ;)
 
./mprine

Hallo buddabrod,

./mprime heißt dann vermutlich die Lösung um die VIDs zu finden.

mprime startet auch bei mir, nur weiß ich wirklicht was ich tun soll.

Dort 15 eingeben (für Options/Torture Test)
Thread nach CPU Core-Anzahl richten und Option 2 (In-place large FFTs) auswählen.

Um die einzelnen VIDs anzupassen, wird z.B. der cpufreq-set der Takt manuell begrenzt: für 1.6GHz sieht das so aus:
cpufreq-set -u 1.6G (evtl. muss man beide Cores einzeln setzen, dann jeweils mit -c0 bzw. -c1 etc anhängen).

Vorher per "yum install cpufrequtils" entsprechendes Paket installieren.

Für jede Takstufe VIDs reduzieren, dabei immer mprime einige Minuten laufen lassen und hoffen, dass mprime keine Fehler zeigt bzw. das System nicht abschmiert ;)

Damit bin ich einfach überfordert, kannst Du das Step by Step beschreiben?

15 eingeben (für Options/Torture Test), das habe ich noch gefunden.
cpufrequtils ist bei mir installiert.

MfG

xsid



Edit:

cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz
stepping : 6
cpu MHz : 800.000
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida tpr_shadow vnmi flexpriority
bogomips : 4986.74
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz
stepping : 6
cpu MHz : 800.000
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm ida tpr_shadow vnmi flexpriority
bogomips : 4987.45
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

Wie finde ich bei dieser CPU die möglichen Taktfrequenezen zu den FIDs?
Das muß ich wissen um die möglichen VIDs mit mprime ermitteln zu können.
Bei diesem Prozessor werden es vermutlich 6 Taktfrequenezen sein.
Das mprime Pozedere, d. h. wenn der PC nicht abstürzt werde ich mind. sechs mal durchführen müssssen.

Mit welchen Werten fange ich bei mprime an, wann höre ich mit mpirme auf?

MfG

xsid
 
Heute bin ich gut drauf, da gibts nochmal Schritt für Schritt ;)

Also: benutze erstmal cpufrequtils (dafür ist es ja installiert ;) ): cpufreq-info

Da siehst du dann in der Ausgabe die möglichen Taktstufen und welcher Steuerungsmechanismus für den CPU Takt eingestellt ist (der Governor), idR ist das ondemand. Manchmal aber auch userspace, dann wird das durch eine externe Software geregelt (nicht so mein Ding..)

Jetzt weißt du dank cpufrequtils deine Taktstufen und mit cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids kannst du die entsprechenden VIDs ablesen.

Beispiel:

cpufreq-info
Code:
cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email]cpufreq@vger.kernel.org[/email], please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.20 GHz
  available frequency steps: 2.20 GHz, 2.20 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
  available cpufreq governors: ondemand, userspace, performance
  current policy: frequency should be within 800 MHz and 2.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.20 GHz
  available frequency steps: 2.20 GHz, 2.20 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
  available cpufreq governors: ondemand, userspace, performance
  current policy: frequency should be within 800 MHz and 2.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
Ondemand ist für beide Cores eingestellt und es gibt folgende Taktstufen:

* Turbo Modus (das ist die erste 2.2GHz Stufe)
* 2.2GHz
* 1.6GHz
* 1.2GHz
* 0.8GHz

Jetzt lesen wir die VIDs aus:
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
45 43 28 18 11
Demnach hat der Turbos-Modus standardmäßig 45, 2.2GHz läuft mit 43 etc. und die 800MHz gehören zu der 11, was die niedrigste Spannung darstellt.

So, da man das nun weiß, geht es weiter:

mprime starten (wie vorhin) und den Torture Test laufen lassen. Kurz per top oder htop prüfen, dass alle Kerne ausgelastet sind und per watch -n2 cat /proc/acpi/ibm/thermal die Temperatur überwachen. (sollte stark ansteigen).

Dann führst du einfach mal als Bsp.
Code:
echo "43 43 28 18 11" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids && echo "43 43 28 18 11" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
aus und schon laufen beide Cores im Turbo-Modus auf niedrigerer Spannung. Das kann man beliebig wiederholen, ist aber nicht vollkommen zuverlässig, weil nicht immer Turbo Aktiv ist. Daher mag ich den nicht :D

als nächstes gehts so weiter:
Code:
cpufreq-set -u 2.2G -c0 && cpufreq-set -u 2.2G -c1
damit für beide Cores der Takt auf 2.2Ghz begrenz ist (der Turbomodus wird als 2.201Ghz gelistet ;) ) und dann gehts wieder weiter: (mprime läuft die ganze Zeit!)
Code:
echo "43 40 28 18 11" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids && echo "43 40 28 18 11" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
Somit wurde dann auch für die 2.2GHz die VID verringert. Das kann man so weit fortsetzen, bis das System abschmiert, den letzten guten Wert + 2 setze ich dann als VID fest.

So kann man das für alle Taktfrequenzen durchdödeln, bis man seine Werte hat.
 
Super Super Super

Hallo buddabrod,

das liest sich doch klasse, wenn ich jetzt noch mprime erklärt bekommen würde.

Bei mprime sieht es bei mir wie folgt aus:

~/PHC/mprime265-linux64$ ./mprime
Main Menu

1. Test/Primenet
2. Test/Worker threads
3. Test/Status
4. Test/Continue
5. Test/Exit
6. Advanced/Test
7. Advanced/Time
8. Advanced/P-1
9. Advanced/ECM
10. Advanced/Manual Communication
11. Advanced/Unreserve Exponent
12. Advanced/Quit Gimps
13. Options/CPU
14. Options/Preferences
15. Options/Torture Test
16. Options/Benchmark
17. Help/About
18. Help/About PrimeNet Server
Your choice: 15

Number of torture test threads to run (2): 2
Choose a type of torture test to run.
1 = Small FFTs (maximum FPU stress, data fits in L2 cache, RAM not tested
much).
2 = In-place large FFTs (maximum heat and power consumption, some RAM
tested).
3 = Blend (tests some of everything, lots of RAM tested).
11,12,13 = Allows you to fine tune the above three selections.
Blend is the default. NOTE: if you fail the blend test, but can pass the
small FFT test then your problem is likely bad memory or a bad memory
controller.
Type of torture test to run (3): 2

Accept the answers above? (Y): y
[Main thread Mar 14 12:45] Starting workers.
[Worker #1 Mar 14 12:45] Worker starting
[Worker #2 Mar 14 12:45] Worker starting
[Worker #2 Mar 14 12:45] Setting affinity to run worker on logical CPU #1
[Worker #1 Mar 14 12:45] Setting affinity to run worker on logical CPU #0
[Worker #1 Mar 14 12:45] Beginning a continuous self-test to check your computer.
[Worker #1 Mar 14 12:45] Please read stress.txt. Hit ^C to end this test.
[Worker #2 Mar 14 12:45] Beginning a continuous self-test to check your computer.
[Worker #2 Mar 14 12:45] Please read stress.txt. Hit ^C to end this test.
[Worker #2 Mar 14 12:45] Test 1, 7800 Lucas-Lehmer iterations of M9537183 using Core2 type-2 FFT length 480K, Pass1=640, Pass2=768.
[Worker #1 Mar 14 12:45] Test 1, 7800 Lucas-Lehmer iterations of M9537183 using Core2 type-2 FFT length 480K, Pass1=640, Pass2=768.

Number of torture test threads to run (2):

Was gebe ich das ein?

Dann kommen noch weitere Abfragen, weil Du so gute Laune hast, würdest Du den Ablauf auch hier Dokumentieren?
Das wäre super, dann benötige ich keine bash mehr.

Und wann man dann viel aus diesem Thread streicht hat man eine Anleitung für das Wiki.

phctool sollte man gar nicht erwähnen, es verwirrt nur, zudem wird es zur Zeit nicht weiter entwickelt.


Danke für deine Mühe, erinnert mich an die linrunner Anleitungen.


MfG

xsid


Edit, Hinweis:

Hi buddabrod, vielleicht solltest Du folgenden Vorgehensweise ein wenig mehr herausheben.
In deinem ersten Posting geht das ein wenig unter.
-Zitat:
Nebenbei überwache ich die Temperatur in einem zweiten Terminal: watch -n1 cat /proc/acpi/ibm/thermal
- Zitatende

watch -n1 cat /proc/acpi/ibm/thermal
 
Die Anzahl der Tests sollte immer der Anzahl der Rechenkerne entsprechen.

Beim ersten Start ist das bei mprime zwar etwas anders, aber bei allen folgenden Starts geht man so vor:

* 15 Auswählen für Options/Torture Test
* Anzahl der Rechenkerne als Anzahl der Torture Test Threads eingeben
* 2 eingeben für In-place large FFTs
* Y um die vorherigen Eingaben zu bestätigen

Dann läuft die Geschichte.

Abbrechen kann man per STRG+c, dann Eingabe drücken und 5 für Test/Exit eingeben. Schon ist es beendet. Mehr Abfragen kommen bei mir nicht ;)
 
man sollte die cpu allerdings schon ne weile auf der jeweiligen taktstufe laufen lassen um die stabilität zu testen. manchmal bricht mprime einfach nach ein paar stunden ab, da ein rechenfehler der cpu erkannt wurde. mir ist vor jahren mal der test nach über 10 stunden wegen eines rechenfehlers abgebrochen worden. ein kurzes test mit mprime ist daher nicht aussagekräftig und kann dazu führen, dass dir später irgendwann mal die kiste sporadisch hängen bleibt, programme wegen segfaults gekillt oder daten unbemerkt beschädigt werden, da die cpu sich verrechnet hat, aber trotzdem vielleicht noch weiterläuft.

undervolting ist genau wie übertaktung eine sache, die mit bedacht gemacht werden muss. lediglich temperaturprobleme, di einem die übertaktung verhageln können, braucht man beim undevolting nicht zu fürchten. der rest ist das gleiche.
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben