Kirjoittaja Aihe: Prosessorin taajuuden säätö rasituksen mukaan(acpi) cpufreq-moduulilla  (Luettu 2851 kertaa)

rationaalinen

  • Käyttäjä
  • Viestejä: 67
    • Profiili
Tervehdys arvon foorumilaiset!

Olen yrittänyt jo jonkin aikaa saada achi :n toimimaan cpufreq moduulin avulla. Ongelmani on, että CPU on jumiutunut minikertoimelle huolimatta CPU :n rasituksesta. Maksimi kertoimella 8 prosessorin taajuus on 2.13 GHz, minikertoimella 6 taajuus on vastaavasti 1.6 GHz.

Olen kokeillut myös BIOS :n ACPI :n eri asetuksia: disabled ja dynaamisia asetuksia mm. cruising - full thrust, jotka ylikellottavat prosessorin taajuutta välillä 5-19%. Viimeisellä asetuksella käyttöjärjestelmän lataus pysähtyy kernelin latauksen jälkeen. Kernel kiukuttelee root osion ja vastaavasti bin sbin jne. linkkien puutteesta. Todennäköisesti kovalevy ei kerkeä jostain syystä kiireisen prosessorin mukaan?

Laitteisto:
Core 2 Duo E6400 2.13GHz prosessori
Gigabyte GA-965P-DS4 emolevy
Emolevyn BIOS:sta voi säätää prosessorin kerrointa välillä 6-8, ts. prosessorin taajuus vaihtelee välillä 1.6-2.13 GHz.

Menetelmä moduulien asennukseen ja asetuksien tekoon:
1. Laitetaan BIOS :sta ACPI päälle.

2. Asennetaan ohjelmat:
install cpufreqd cpufrequtils sysfsutils modprobe

3. Tarkistetaan prosessorin tyyppi
cat /proc/cpuinfo | grep "model name"
Vaihtoehtoisia ovat:
AMD K7 processors (Athlon, Duron, Sempron 32 bits) : powernow_k7
AMD K8 processors (Athlon 64, Turion 64, Sempron 64, Opteron 64) : powernow_k8
Pentium 4, Celeron D, Pentium D, Celeron M : p4_clockmod
Pentium M, Core Duo, Core 2 Duo : speedstep_centrino

Päätin käyttää yleistä acpi_cpufreq ajuria.

4. Tarkistetaan tarjolla olevat ACPI asetukset:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

ja lisätään nämä ajettaviksi moduuleiksi kohdassa 5:

5. Määritetään bootin yhteydessä ladattavat moduulit:
lisätään seuraavat rivit tiedostoon /etc/modules:
cpufreq_conservative
cpufreq_ondemand
cpufreq_powersave
cpufreq_stats
cpufreq_userspace

6. Valitaan haluttu prosessorin taajuuden säätötapa:
Lisätään seuraavat rivit tiedoston /etc/sysfs.conf loppuun:

devices/system/cpu/cpu0/cpufreq/scaling_governor=ondemand
devices/system/cpu/cpu1/cpufreq/scaling_governor=ondemand

Valitsin nyt "ondemand" asetuksen, jolloin cpufreq :n pitäisi muuttaa prosessorin kerrointa dynaamisesti kuorman mukaan. HUOM! Nyt CPU lkm. on 2, koska Core 2 Duo prosessorissa on KAKSI fyysistä suoritinta.

7. Bootti.
Tuloksena prosessorin jumiutuminen taajuudelle 1.6GHz,ts. alimmalle kertoimelle 6, jota ei pysty muuttamaan edes roottina cpufreq-set komentoa käyttämällä. Tämä ilmenee niin komentamalla cat /proc/cpuinfo kuin myös benchmark-testeilläkin. Kone on hitaampi kuin pitäisi.

Ideoita ongelman korjaamiseksi?
« Viimeksi muokattu: 30.03.07 - klo:23.24 kirjoittanut rationaalinen »

Risto H. Kurppa

  • Käyttäjä
  • Viestejä: 3024
  • Useita Kubuntuja ajossa.
    • Profiili
    • http://risto.kurppa.fi
Moro!

Mulla E6600 (2.4GHz) ja Asus p5b-vm -emo.

Asensin cpufreqd ja cpufreqtools.

cpufreqd -D kertoo näin:
Koodia: [Valitse]
apm_init                 : /proc/apm: No such file or directory
pmu_init                 : /proc/pmu/info: No such file or directory
nforce2_post_conf        : Unconfigured, exiting.
plugins_post_conf        : Unable to configure plugin nforce2_atxp1, removing
sensors_post_conf        : no sensors.conf found, sensors disabled!
plugins_post_conf        : Unable to configure plugin sensors_plugin, removing
acpi_battery_init        : no batteries found, not a laptop?
acpi_battery_init        : exiting.
parse_config_profile     : Unable to calculate absolute values for profile "Performance High".
parse_config_profile     : Unable to normalize frequencies for profile "Performance High".
parse_config_profile     : Unable to calculate absolute values for profile "Performance Low".
parse_config_profile     : Unable to normalize frequencies for profile "Performance Low".
parse_config_profile     : Unable to calculate absolute values for profile "Powersave High".
parse_config_profile     : Unable to normalize frequencies for profile "Powersave High".
parse_config_profile     : Unable to calculate absolute values for profile "Powersave Low".
parse_config_profile     : Unable to normalize frequencies for profile "Powersave Low".
cpufreqd_set_profile     : Couldn't set profile "Powersave Low" set for cpu0 (40-40-powersave)
cpufreqd_loop            : Cannot set policy, Rule unchanged ("none").
cpufreqd_set_profile     : Couldn't set profile "Powersave Low" set for cpu0 (40-40-powersave)
cpufreqd_loop            : Cannot set policy, Rule unchanged ("none").
qcpufreqd_set_profile     : Couldn't set profile "Powersave Low" set for cpu0 (40-40-powersave)
cpufreqd_loop            : Cannot set policy, Rule unchanged ("none").

ja sitä varsinaista daemonia ei siis saa pysymään päällä (sudo /etc/init.d/cpufreqd sanoo että error..)

biosia en ole vielä vilkaissut.

lsmod kertoo että - jaa, sieltä onkin kadonnut cpufreq -rivit.. mielenkiiintoista.. No, anyway, tuolta /sys/devicesin alta ei löytynyt noita cpufreq -kansioita, vain cache ja topology

cpuinfo kertoo:
Koodia: [Valitse]
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz
stepping        : 6
cpu MHz         : 2400.116
cache size      : 4096 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
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 a
cpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr la
hf_lm
bogomips        : 4803.33
clflush size    : 64

processor       : 1

Eli täpöllä tuo kait käsittääkseni käy - haluaisin sen vain laskemaan kun kuorma laskee..

Pitää vielä hieman tutkiskella näköjään - vinkkejä saa kertoa..


r
UUSI UBUNTUN KÄYTTÄJÄ: SÄÄSTÄ AIKAASI LUKEMALLA  -> TÄMÄ <-