Bug 219921

Summary: Frequency scalling stopped working on Mobile Pentium 4 - M after upgrade to cpuspeed-1.2.1-1.42.fc6
Product: [Fedora] Fedora Reporter: Tadej Janež <tadej.j>
Component: cpuspeedAssignee: Jarod Wilson <jarod>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 6CC: dbaron
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-01-09 09:58:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Tadej Janež 2006-12-16 15:54:52 UTC
Description of problem:
After upgrading to cpuspeed-1.2.1-1.42.fc6, my FC6 system no longer supports
frequency scalling on my Pentium 4 Mobile processor.

Version-Release number of selected component (if applicable):
cpuspeed-1.2.1-1.42.fc6
kernel-2.6.18-1.2849.fc6

Additional info:
I hunted bugzilla for similar bug reports and I found that some people suggest
to add a DRIVER="p4-clockmod" line to the /etc/cpuspeed.conf, if you have a
Pentium 4 CPU. However, my kernel (kernel-2.6.18-1.2849.fc6) doesn't contain the
p4-clockmod module at all:
[root@tlinux-stable tadej]# ls
/lib/modules/2.6.18-1.2849.fc6/kernel/arch/i386/kernel/cpu/cpufreq/
acpi-cpufreq.ko  powernow-k6.ko

After some trial and error, I managed to get my old behaviour back by manually
loading the acpi-cpufreq module and starting cpuspeed daemon.

So, it appears, cpuspeed daemon no longer loads the default acpi-cpufreq module
into the kernel, which causes it to fail to function properly.

Comment 1 Tadej Janež 2007-01-06 22:11:38 UTC
I started debugging this problem today and I found out that cpuspeed's init.d
script (/etc/rc.d/init.d/cpuspeed) fails to load the generic acpi-cpufreq
module, because my processor doesn't report the est ("Enhanced SpeedStep") cpu flaq.

Debug trace for cpuspeed shell script:
[tadej@tlinux-stable cpuspeed-bug]$ sudo sh -x ./cpuspeed start
+ . /etc/rc.d/init.d/functions
++ TEXTDOMAIN=initscripts
++ umask 022
++ PATH=/sbin:/usr/sbin:/bin:/usr/bin
++ export PATH
++ '[' -z '' ']'
++ COLUMNS=80
++ '[' -z '' ']'
+++ /sbin/consoletype
++ CONSOLETYPE=pty
++ '[' -f /etc/sysconfig/i18n -a -z '' ']'
++ . /etc/profile.d/lang.sh
+++ sourced=0
+++ for langfile in /etc/sysconfig/i18n '$HOME/.i18n'
+++ '[' -f /etc/sysconfig/i18n ']'
+++ . /etc/sysconfig/i18n
++++ LANG=en_US.UTF-8
++++ SUPPORTED=en_US.UTF-8:en_US:en:sl_SI.UTF-8:sl_SI:sl
++++ SYSFONT=latarcyrheb-sun16
+++ sourced=1
+++ for langfile in /etc/sysconfig/i18n '$HOME/.i18n'
+++ '[' -f /home/tadej/.i18n ']'
+++ '[' -n '' ']'
+++ '[' 1 = 1 ']'
+++ '[' -n en_US.UTF-8 ']'
+++ export LANG
+++ '[' -n '' ']'
+++ unset LC_ADDRESS
+++ '[' -n '' ']'
+++ unset LC_CTYPE
+++ '[' -n '' ']'
+++ unset LC_COLLATE
+++ '[' -n '' ']'
+++ unset LC_IDENTIFICATION
+++ '[' -n '' ']'
+++ unset LC_MEASUREMENT
+++ '[' -n '' ']'
+++ unset LC_MESSAGES
+++ '[' -n '' ']'
+++ unset LC_MONETARY
+++ '[' -n '' ']'
+++ unset LC_NAME
+++ '[' -n '' ']'
+++ unset LC_NUMERIC
+++ '[' -n '' ']'
+++ unset LC_PAPER
+++ '[' -n '' ']'
+++ unset LC_TELEPHONE
+++ '[' -n '' ']'
+++ unset LC_TIME
+++ '[' -n '' ']'
+++ unset LC_ALL
+++ '[' -n '' ']'
+++ unset LANGUAGE
+++ '[' -n '' ']'
+++ unset LINGUAS
+++ '[' -n '' ']'
+++ unset _XKB_CHARSET
++++ /sbin/consoletype
+++ consoletype=pty
+++ '[' -n '' ']'
+++ '[' -n '' ']'
+++ '[' -n en_US.UTF-8 ']'
+++ case $LANG in
+++ '[' xterm = linux ']'
+++ unset SYSFONTACM SYSFONT
+++ unset sourced
+++ unset langfile
++ '[' -z '' ']'
++ '[' -f /etc/sysconfig/init ']'
++ . /etc/sysconfig/init
+++ BOOTUP=color
+++ GRAPHICAL=yes
+++ RES_COL=60
+++ MOVE_TO_COL='echo -en \033[60G'
+++ SETCOLOR_SUCCESS='echo -en \033[0;32m'
+++ SETCOLOR_FAILURE='echo -en \033[0;31m'
+++ SETCOLOR_WARNING='echo -en \033[0;33m'
+++ SETCOLOR_NORMAL='echo -en \033[0;39m'
+++ LOGLEVEL=3
+++ PROMPT=yes
+++ AUTOSWAP=no
++ '[' pty = serial ']'
++ '[' color '!=' verbose ']'
++ INITLOG_ARGS=-q
++
__sed_discard_ignored_files='/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d'
+ '[' -f /usr/sbin/cpuspeed ']'
+ prog=cpuspeed
+ '[' -f /etc/cpuspeed.conf ']'
+ . /etc/cpuspeed.conf
++ VMAJOR=1
++ VMINOR=1
++ OPTS=' -n'
+ cpu0freqd=/sys/devices/system/cpu/cpu0/cpufreq
+ testpat='/sys/devices/system/cpu/cpu*/cpufreq/scaling_driver'
+ case "$1" in
+ start
+ '[' '!' -f /var/lock/subsys/cpuspeed ']'
+ some_file_exist '/sys/devices/system/cpu/cpu*/cpufreq/scaling_driver'
+ '[' '/sys/devices/system/cpu/cpu*/cpufreq/scaling_driver' ']'
+ '[' -f '/sys/devices/system/cpu/cpu*/cpufreq/scaling_driver' ']'
+ shift
+ '[' '' ']'
+ return 1
+ '[' -n '' ']'
+ '[' -d /proc/acpi ']'
+ grep flags /proc/cpuinfo
+ grep -q est
+ return 0
+ exit

Here is my /proc/cpuinfo:
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Mobile Intel(R) Pentium(R) 4 - M CPU 1.80GHz
stepping        : 7
cpu MHz         : 1800.000
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up cid
bogomips        : 3590.67

According to Intel's documentation, this cpu should support the Enhanced
SpeedStep, however, the current kernel doesn't report it so.
See: http://support.intel.com/support/processors/mobile/pentium4/sb/CS-007499.htm

Should I open a new kernel bug?

I'm glad to provide more information if needed and I hope to receive some
feedback regarding my issue.

Comment 2 Jarod Wilson 2007-01-08 16:07:44 UTC
Can you try specifying "DRIVER=p4-clockmod" in /etc/cpuspeed.conf and see if
that gets things back to working? I'm hoping that's all there is to resolving
this...

Comment 3 Tadej Janež 2007-01-09 09:58:49 UTC
Hi!

I managed to solve my problem, but it was a really nasty thing. Somehow yum
installed i586 versions of kernels instead of the i686 versions, which explains
the missing p4-clockmod module (not present in i586 kernels).
I should probably file a new yum bug for this, but it is rather non-obvious to
spot that you are using a i586 kernel instead of a i686 one.

Furthermore, I specified "DRIVER=p4-clockmod" in /etc/cpuspeed.conf, but it
causes no difference, because, the module can't be loaded:
[tadej@tlinux-stable ~]$ sudo /sbin/modprobe p4-clockmod
FATAL: Error inserting p4_clockmod
(/lib/modules/2.6.18-1.2869.fc6/kernel/arch/i386/kernel/cpu/cpufreq/p4-clockmod.ko):
Device or resource busy
And /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver reports "speedstep-ich"
(speedstep-ich is built into the kernel), so I am assuming that this is the
correct driver for Mobile Pentium 4 - M cpus.

I think I can close this bug now, thank you for your help!