# Problem z regulatorem ondemand - Celeron D

## matulik

Witam.

Posiadam Celerona D (Prescott) 3.06 GHz.

```

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 15

model           : 4

model name      : Intel(R) Celeron(R) CPU 3.06GHz

stepping        : 9

microcode       : 0x3

cpu MHz         : 3066.590

cache size      : 256 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 5

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 nx lm constant_tsc up pebs bts pni dtes64 monitor ds_cpl tm2 cid cx16 xtpr lahf_lm

bogomips        : 6121.07

clflush size    : 64

cache_alignment : 128

address sizes   : 36 bits physical, 48 bits virtual

power management:

```

Próbuje ustawić na nim skalowanie procesora. Wszystkie regulatory oraz moduł p4-clockmod wkompilowane są na stałe w jądro.

cpufreq-info wyświetla następująco:

```

cpufreq-info

cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009

Report errors and bugs to cpufreq@vger.kernel.org, please.

analyzing CPU 0:

  driver: p4-clockmod

  CPUs which run at the same hardware frequency: 0

  CPUs which need to have their frequency coordinated by software: 0

  maximum transition latency: 10.00 ms.

  hardware limits: 383 MHz - 3.07 GHz

  available frequency steps: 383 MHz, 767 MHz, 1.15 GHz, 1.53 GHz, 1.92 GHz, 2.30 GHz, 2.68 GHz, 3.07 GHz

  available cpufreq governors: conservative, userspace, powersave, ondemand, performance

  current policy: frequency should be within 383 MHz and 3.07 GHz.

                  The governor "performance" may decide which speed to use

                  within this range.

  current CPU frequency is 3.07 GHz (asserted by call to hardware).

  cpufreq stats: 383 MHz:0.00%, 767 MHz:0.00%, 1.15 GHz:0.00%, 1.53 GHz:0.00%, 1.92 GHz:0.00%, 2.30 GHz:0.00%, 2.68 GHz:0.00%, 3.07 GHz:100.00%

```

Plik konfiguracyjny cpufrequitls bez zmian w stosunku do domyślnego:

```

cat /etc/conf.d/cpufrequtils

# /etc/conf.d/cpufrequtils: config file for /etc/init.d/cpufrequtils

# Options when starting cpufreq (given to the `cpufreq-set` program)

START_OPTS="--governor ondemand"

# Options when stopping cpufreq (given to the `cpufreq-set` program)

STOP_OPTS="--governor performance"

# Extra settings to write to sysfs cpufreq values.

#SYSFS_EXTRA="ondemand/ignore_nice_load=1 ondemand/up_threshold=70"

```

cpufrequtils dodany do poziomu uruchomieniowego boot:

```

rc-update -s

                acpid |      default

             bootmisc | boot

         cpufrequtils | boot

                devfs |                       sysinit

                dmesg |                       sysinit

                 fsck | boot

             hostname | boot

              hwclock | boot

              keymaps | boot

            killprocs |              shutdown

                local |      default

           localmount | boot

              modules | boot

             mount-ro |              shutdown

                 mtab | boot

             net.eth0 |      default

               net.lo | boot

             netmount |      default

               procfs | boot

                 root | boot

            savecache |              shutdown

                 sshd |      default

                 swap | boot

               sysctl | boot

            syslog-ng |      default

         termencoding | boot

                 udev | boot                  sysinit

       udev-postmount |      default

              urandom | boot

           vixie-cron |      default

```

Przełączanie poprzez cpufreq-set na poszczególne częstotliwości działa. Regulator powersave ustawia najmniejszą częstotliwość.

Niestety regulator ondemand nie działa. Po jego ustawieniu ZAWSZE pozostaje ostatnia ustawiona częstotliwość poprzez cpufreq-set -u... Podobnie dzieje się przy regulatorze performance i conservative.

Dlaczego tak się dzieje? Szukałem w sieci i nie znalazłem jakiegoś bardzo podobnego przypadku. 

Czy to problem procesora, modułu to skalowania, czy może jeszcze czegoś innego?

----------

## lsdudi

pomoc do modułu mówi:

```
This adds the CPUFreq driver for Intel Pentium 4 / XEON                                                                                  

  processors.  When enabled it will lower CPU temperature by skipping   

 clocks.                               

                                       

This driver should be only used in exceptional         

circumstances when very low power is needed because it causes severe    

slowdowns and noticeable latencies.  Normally Speedstep should be used               

instead.

To compile this driver as a module, choose M here: the                    

module will be called p4-clockmod

```

wywal z jadra p4-clockmod pewnie nie jest juz kompatybilny z nowszymi narzedziami userspace

----------

## matulik

Tyle że żaden inny moduł nie działa z moim procesorem..

----------

## lsdudi

jestes pewien ze acpi-cpufreq  nie działa?

----------

## matulik

Tak. Moduł acpi-cpufreq wogóle nie chce się załadować:

```

modprobe -v acpi-cpufreq

insmod /lib/modules/3.5.7-gentoo/kernel/drivers/cpufreq/acpi-cpufreq.ko

FATAL: Error inserting acpi_cpufreq (/lib/modules/3.5.7-gentoo/kernel/drivers/cpufreq/acpi-cpufreq.ko): No such device

```

Last edited by matulik on Sat Nov 17, 2012 9:02 pm; edited 1 time in total

----------

## sebas86

Jeśli się nie pomyliłeś z podaną nazwą procesora (Celerona D (Prescott)) to rzeczywiście wybrałeś odpowiedni sterownik. Procesory te nie miały żadnego sprzętowego trybu oszczędzania energii. Jeśli nie chcesz mieć problemów najlepiej wywal ten sterownik w cholerę bo niewiele pomoże a zawsze sprawiał tylko problemy, jedyny plus, że pozwalał nieznacznie obniżyć temperaturę w przypadkach gdy programy z przestrzeni użytkownika zajmowały w 100% czas procesora - obniżenie taktowania jest symulowane przez nie wykonywanie przez pewien czas żadnych instrukcji...

----------

## matulik

Ok, w takim razie dzięki wielkie za pomoc, temat do zamknięcia.

----------

