[gelöst] Pentium M drosselt Frequenz bei Last

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Mebuh
Beiträge: 122
Registriert: 21.06.2004 15:27:19
Wohnort: München

[gelöst] Pentium M drosselt Frequenz bei Last

Beitrag von Mebuh » 21.01.2009 22:09:19

Hi,

Ich hab' da ein Problem.
Mein Pentium M unterstützt eigentlich Frequenzen von 0,8GHz bis 1,87GHz

Aber wenn ich jetzt einen Job laufen lasse, der volle Last erzeugt (z.B. Kernel-kompilieren, Video encoden) stellt die CPU auf 1,87GHz

Code: Alles auswählen

:~$ cpufreq-info 
cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
Bitte melden Sie Fehler an cpufreq@lists.linux.org.uk.
analysiere CPU 0:
  Treiber: acpi-cpufreq
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0
  Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 1.87 GHz
  mögliche Taktfrequenzen: 1.87 GHz, 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
  mögliche Regler: userspace, conservative, ondemand, powersave, performance
  momentane Taktik: die Frequenz soll innerhalb 800 MHz und 1.87 GHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 1.87 GHz.
  Statistik:1.87 GHz:5,37%, 1.60 GHz:0,13%, 1.33 GHz:0,19%, 1.07 GHz:0,19%, 800 MHz:94,12%  (96)
Aber kurz darauf reduziert er die maximale Frequenz auf 800MHz

Code: Alles auswählen

mbucher@hal:~$ cpufreq-info 
cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
Bitte melden Sie Fehler an cpufreq@lists.linux.org.uk.
analysiere CPU 0:
  Treiber: acpi-cpufreq
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0
  Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 1.87 GHz
  mögliche Taktfrequenzen: 1.87 GHz, 1.60 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
  mögliche Regler: userspace, conservative, ondemand, powersave, performance
  momentane Taktik: die Frequenz soll innerhalb 800 MHz und 800 MHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 800 MHz.
  Statistik:1.87 GHz:6,09%, 1.60 GHz:0,13%, 1.33 GHz:0,20%, 1.07 GHz:0,20%, 800 MHz:93,38%  (103)
Die maximale Frequenz lässt sich auch nicht über /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq wieder erhöhen!
Das gleiche passiert auch mit dem Performance-governour!
Ich hab' es jetzt mit dem Debiankernel probiert, mit dem 2.6.27er und dem 2.6.28er.

Bis auf kpowersave sind alle Dämonen die die Freqeunz einstellen nicht aktiv. Was der HAL macht weiß ich leider nicht.

Code: Alles auswählen

:~$ ps aux | grep -E "acpi|cpufreq|power"
root        41  0.0  0.0      0     0 ?        S<   21:09   0:00 [kacpid]
root        42  0.0  0.0      0     0 ?        S<   21:09   0:00 [kacpi_notify]
root      1378  0.0  0.0      0     0 ?        S<   21:09   0:00 [ktpacpid]
root      2728  0.0  0.1   2292  1240 ?        Ss   21:10   0:00 /usr/sbin/acpid -c /etc/acpi/events
root      3173  0.0  0.1   3396  1112 ?        S    21:10   0:00 /usr/lib/hal/hald-addon-cpufreq
112       3174  0.0  0.0   2272   936 ?        S    21:10   0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
user      3662  0.0  1.2  31056 12368 ?        S    21:11   0:01 kpowersave [kdeinit]                                        

Code: Alles auswählen

:~$ lsmod | grep -E "cpu|acpi"
cpufreq_userspace       3172  0 
cpufreq_stats           3776  0 
cpufreq_conservative     5960  0 
cpufreq_ondemand        6476  1 
cpufreq_powersave       1856  0 
acpi_cpufreq            6796  0 
freq_table              4224  3 cpufreq_stats,cpufreq_ondemand,acpi_cpufreq
thinkpad_acpi          49632  0 
led_class               3908  1 thinkpad_acpi
nvram                   7116  2 thinkpad_acpi
processor              32576  3 acpi_cpufreq,thermal
Die CPU-Temperatur ist so um die 50°C. Also noch nicht in dem Bereich wo er runter regeln muss, oder!?
Hat jemand 'ne Ahnung woran das liegt?

Gruß,
mebuh
Zuletzt geändert von Mebuh am 05.02.2009 22:32:11, insgesamt 1-mal geändert.

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Re: Pentium M drosselt Frequenz bei Last

Beitrag von storm » 22.01.2009 19:32:18

Mebuh hat geschrieben:Aber kurz darauf reduziert er die maximale Frequenz auf 800MHz
Wie kurz ist der Zeitraum? Hast du vllt. mal mit watch beobachtet, ob die Temperatur sofort "hochspringt"?
Bis auf kpowersave sind alle Dämonen die die Freqeunz einstellen nicht aktiv. Was der HAL macht weiß ich leider nicht.
Schalte doch mal den kpowersave auch aus; am besten gleich mal auf "init s" gehen und das Ganze auf der Konsole ankucken. HAL (hardware abstraction layer) ist "nur" ein Vermittler, wird selbst nicht gegenüber der Hardware tätig.
Die CPU-Temperatur ist so um die 50°C. Also noch nicht in dem Bereich wo er runter regeln muss, oder!?
Ich denke nicht, Pentium M (zumindest dothan) darf bis 100°C Gehäusetemperatur haben, bevor die CPU drosselt.

ciao, storm

http://www.heatsink-guide.com/content.p ... temp.shtml
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

Mebuh
Beiträge: 122
Registriert: 21.06.2004 15:27:19
Wohnort: München

Re: Pentium M drosselt Frequenz bei Last

Beitrag von Mebuh » 26.01.2009 21:45:46

Hi,

danke für die Antwort und sorry, dass ich mich jetzt erst melde, aber ich war nicht zu Hause.
Wie kurz ist der Zeitraum? Hast du vllt. mal mit watch beobachtet, ob die Temperatur sofort "hochspringt"?
Ich habe mir mit watch jetzt mal ein paar proc-Dateien angeschaut und gemerkt, dass er die Frequenz kurzzeitig auch mal wieder hochregelt:

Es könnte tatsächlich was mit der Temperatur zu tun haben:
Zunächst ist die CPU-Temp so um die 46°
Produziere ich jetzt Last (Kernel kompilieren) steigt die Temperatur langsam bis auf ca.56°
Dann wird die scaling_max_temp abgeriegelt auf 800MHz
Die Temperatur sinkt auf 50° und bleibt dort
Ab und zu wird die Frequenz wieder hochgeregelt, dann aber nur für <5-10Sek.
Breche ich die Last ab wird bei <50° wieder die max_freq hochgeregelt.

Inzwischen habe ich den Kernel im Verdacht, denn die Hardware kann es nicht sein, weil die max. Hardwarefrequenz immer auf 1,87GHz bleibt, außerdem:

Code: Alles auswählen

:~$ cat /proc/acpi/thermal_zone/THM0/trip_points 
critical (S5):           99 C
passive:                 95 C: tc1=5 tc2=4 tsp=600 devices= CPU
Der Userspace kann es nicht sein, da keine Programme aktiv sind.

Werde mir die Kernelkonfig im Bereich ACPI und CPUFreq nochmal genauer anschauen.

Ansonsten bin ich für weitere Ideen dankbar.

Gruß,
mebuh

Mebuh
Beiträge: 122
Registriert: 21.06.2004 15:27:19
Wohnort: München

Re: Pentium M drosselt Frequenz bei Last

Beitrag von Mebuh » 05.02.2009 01:32:30

[UPDATE]

Ich hab' jetzt mal im Kernel das Debugging für cpufreq mittels cpufreq.debug=7 gesetzt.

Ergebnis:

Code: Alles auswählen

cpufreq-core: governor: change or update limits
cpufreq-core: __cpufreq_governor for CPU 0, event 3
performance: setting to 1866000 kHz because of event 3
cpufreq-core: target for CPU 0: 1866000 kHz, relation 1
acpi-cpufreq: acpi_cpufreq_target 1866000 (0)
freq-table: request for target 1866000 kHz (relation: 1) for cpu 0
freq-table: target is 0 (1866000 kHz, 0)
acpi-cpufreq: Already at target state (P0)
cpufreq-core: CPU 0: _PPC is 4 - frequency  limited
cpufreq-core: updating policy for CPU 0
acpi-cpufreq: get_cur_freq_on_cpu (0)
acpi-cpufreq: get_cur_val = 100666918
acpi-cpufreq: cur freq = 1866000
cpufreq-core: setting new policy for CPU 0: 800000 - 1866000 kHz
acpi-cpufreq: acpi_cpufreq_verify
freq-table: request for verification of policy (800000 - 1866000 kHz) for cpu 0
freq-table: verification lead to (800000 - 1866000 kHz) for cpu 0
Hier erzeuge ich Last und kurz darauf:

Code: Alles auswählen

acpi-cpufreq: acpi_cpufreq_verify
freq-table: request for verification of policy (800000 - 800000 kHz) for cpu 0
freq-table: verification lead to (800000 - 800000 kHz) for cpu 0
cpufreq-core: new min and max freqs are 800000 - 800000 kHz
cpufreq-core: governor: change or update limits
cpufreq-core: __cpufreq_governor for CPU 0, event 3
performance: setting to 800000 kHz because of event 3
cpufreq-core: target for CPU 0: 800000 kHz, relation 1
acpi-cpufreq: acpi_cpufreq_target 800000 (0)
freq-table: request for target 800000 kHz (relation: 1) for cpu 0
freq-table: target is 4 (800000 kHz, 4)
cpufreq-core: notification 0 of frequency transition to 800000 kHz
cpufreq-core: notification 1 of frequency transition to 800000 kHz
cpufreq-core: scaling loops_per_jiffy to 798099 for frequency 800000 kHz
Ich werde daraus ehrlich gesagt auch nicht schlau.

Hat jemand 'ne Ahnung?

Gruß,
mebuh

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Re: Pentium M drosselt Frequenz bei Last

Beitrag von storm » 05.02.2009 19:08:04

Mebuh hat geschrieben:Inzwischen habe ich den Kernel im Verdacht, denn die Hardware kann es nicht sein, weil die max. Hardwarefrequenz immer auf 1,87GHz bleibt, außerdem:

Code: Alles auswählen

:~$ cat /proc/acpi/thermal_zone/THM0/trip_points 
critical (S5):           99 C
passive:                 95 C: tc1=5 tc2=4 tsp=600 devices= CPU
Der Userspace kann es nicht sein, da keine Programme aktiv sind.
Woher weisst du das mit der maximalen HW-Frequenz?

Ist der Rechner eigentlich ein Schleppi? Falls ja, hast du mal im BIOS nachgeschaut, welche Einstellungen von dort greifen?

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

Mebuh
Beiträge: 122
Registriert: 21.06.2004 15:27:19
Wohnort: München

Re: Pentium M drosselt Frequenz bei Last

Beitrag von Mebuh » 05.02.2009 22:31:28

storm hat geschrieben:Woher weisst du das mit der maximalen HW-Frequenz?
Das sagt mir cpufreq-info bei "Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 1.87 GHz"
Die ja auch so bleibt.
storm hat geschrieben:Ist der Rechner eigentlich ein Schleppi? Falls ja, hast du mal im BIOS nachgeschaut, welche Einstellungen von dort greifen?
Ja, es ist ein IBM Thinkpad T43.

Und ja, es war anscheinend ein BIOS-Eintrag!
Dort gibt es eine Option, damit das BIOS eigenständig die Frequenzen regeln kann.
Hab' das jetzt deaktiviert und siehe da...

Ich kann mir nur nicht erklären, warum das BIOS die Frequenz bei Last begrenzen sollte.
Vielleicht kommen sich aber auch der Kernel und das BIOS gegenseitig ins Gehege!?

Egal, auf jeden Fall funkrioniert es jetzt :D
@storm: Danke dass du mich auf den richtigen Gedanken gebracht hast.

Gruß,
mebuh

Antworten