FS#10692 - kernel module: acpi-cpufreq will not load

Attached to Project: Arch Linux
Opened by jon (emphire) - Thursday, 19 June 2008, 01:13 GMT
Last edited by Greg (dolby) - Friday, 20 June 2008, 18:20 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Thomas Bächler (brain0)
Architecture i686
Severity Medium
Priority Normal
Reported Version 2007.08-2
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

The acpi-cpufreq will not load. I have confirmed on the forums that several other users are having the same problem (http://bbs.archlinux.org/viewtopic.php?pid=382732#p382732).

# modprobe acpi-cpufreq
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device

Additional info:
I have a Core 2 Duo E6300 and cpufreq used to work on my system when I was last running archlinux (a few months ago). I checked the bios and it looks like it's enabled there.

* package version(s):
kernel26 2.6.25.6-1
cpufrequtils 002-3

* config and/or log files etc.


Steps to reproduce:

# modprobe acpi-cpufreq
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device
This task depends upon

Closed by  Greg (dolby)
Friday, 20 June 2008, 18:20 GMT
Reason for closing:  Upstream
Comment by jon (emphire) - Thursday, 19 June 2008, 01:16 GMT
Some additional notes:

Someone with a Centrino processor is having the same issue. So the issue is not limited to the Core 2 Duo.

I thought this information might be useful too:

Note that the following does not list the cpufreq directory:
$ ls /sys/devices/system/cpu/cpu0/
cache/ crash_notes topology/

The throttling states look like they are being detected:
$ dmesg |grep throttling
ACPI: Processor [CPU1] (supports 8 throttling states)
ACPI: Processor [CPU2] (supports 8 throttling states)

$ cat /proc/acpi/processor/CPU1/throttling
state count: 8
active state: T0
state available: T0 to T7
states:
*T0: 100%
T1: 87%
T2: 75%
T3: 62%
T4: 50%
T5: 37%
T6: 25%
T7: 12%

Let me know if there is anything I can do to assist. Thanks.
Comment by Glenn Matthys (RedShift) - Thursday, 19 June 2008, 07:07 GMT
Not all systems support cpu frequency scaling using ACPI. Try using speedstep (modprobe these: speedstep-centrino, speedstep-ich, speedstep-lib) and report back if these work.
Comment by Glenn Matthys (RedShift) - Thursday, 19 June 2008, 08:27 GMT
Just an FYI: throttling is something entirely different from frequency scaling.

throttling: this is an emergency solution, used when the processor is overheating. It only lets the processor execute something x% of the time. So if you'd set the throttling to T4 (50%), your processor would only do real work 50% of the time. Normally you shouldn't touch this, but if you really want to mess with it, you can try

echo 7 > throttling

and notice the * will move to throttling state T7. With that set, your processor will only do something 12% of the time. Als notice that the frequency doesn't change, see /proc/cpuinfo. Although throttling does lower power consumption, it seriously reduces performance and heavily increases latency.

frequency scaling: this effectively lowers the frequency the processor combined with lowering the voltage supplied in an attempt to lower power consumption. When frequency scaling is working you'll see that the frequency has lowered in /proc/cpuinfo.

Throttling has existed for a long time, and works on systems that don't even have any kind of frequency scaling support (my old pentium 3 550 Mhz can do throttling). So having throttling support is not related to having frequency scaling support.
Comment by jon (emphire) - Thursday, 19 June 2008, 12:57 GMT
Thanks for the info about throttling. I just noticed that there is no speedstep-centrino module any longer, perhaps that's the issue:

# modprobe speedstep-lib
# modprobe speedstep-ich
FATAL: Error inserting speedstep_ich (/lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko): No such device
# modprobe speedstep-centrino
FATAL: Module speedstep_centrino not found.

# ls /lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/
acpi-cpufreq.ko longhaul.ko powernow-k7.ko speedstep-smi.ko
cpufreq-nforce2.ko longrun.ko powernow-k8.ko
e_powersaver.ko p4-clockmod.ko speedstep-ich.ko
gx-suspmod.ko powernow-k6.ko speedstep-lib.ko

# cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
analyzing CPU 1:
no or unknown cpufreq driver is active on this CPU

# ls /sys/devices/system/cpu/cpu0/
cache crash_notes topology
Comment by Glenn Matthys (RedShift) - Thursday, 19 June 2008, 13:00 GMT
Have you tried speedstep-smi?
Comment by jon (emphire) - Thursday, 19 June 2008, 13:03 GMT
# modprobe speedstep-smi
FATAL: Error inserting speedstep_smi (/lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/speedstep-smi.ko): No such device
Comment by Glenn Matthys (RedShift) - Thursday, 19 June 2008, 13:04 GMT
And you are 100% certain that the BIOS is configured correctly? (speedstep/EIST/whatever they call it)
Comment by jon (emphire) - Thursday, 19 June 2008, 13:09 GMT
It looks like it. EIST is marked as "enabled" in the BIOS settings. I do seem to remember using the speedstep-centrino module months ago when cpufreq was working.
Comment by Glenn Matthys (RedShift) - Thursday, 19 June 2008, 13:11 GMT
There can be another option called ACPI C states or similar. Try changing that. If that doesn't help, try out kernel 2.6.25.7 and 2.6.26-rc6 (you'll have to build those yourself). If those fail too, post a bugreport at http://bugzilla.kernel.org/
Comment by Thomas Bächler (brain0) - Thursday, 19 June 2008, 13:46 GMT
I removed speedstep-centrino, as it is deprecated and it should be replaced by acpi-cpufreq.
Comment by Ray Rashif (schivmeister) - Thursday, 19 June 2008, 14:12 GMT
This happens when the hardware does not support the module and vice-versa. Commonly speedstep-based multi-core processors cannot work with speedstep-* as it is, well, deprecated - indeed. However, since acpi-cpufreq is recommended, and itself a last resort because it is a generic module, this case is uncommon.

Save all your work and get ready for a power-off. Load p4-clockmod and repent for your sins.
Comment by Ray Rashif (schivmeister) - Thursday, 19 June 2008, 14:16 GMT
If all else fail, could you, on the contrary, disable EIST or whatever in BIOS and then try loading acpi-cpufreq (failing that, p4-clockmod)?
Comment by jon (emphire) - Friday, 20 June 2008, 12:54 GMT
Ray:
I tried disabling sleepstep in my bios and acpi-cpufreq would still not load. p4-clockmod would not load. I tried every module in /lib/modules/2.6.25-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/. speedstep-lib is the only one that loads, but it does not setup cpufreq.

Glenn:
I tried kernels 2.6.25.7 and 2.6.26-rc6 with no success, I even tried building the speedstep-centrino module into them and it would not load. In a few days I am going to try some older kernels to find what version it stopped working in and I will submit a bug report to http://bugzilla.kernel.org/. Thanks.

Loading...