cpufreq regression, unable to set lower frequency

From: Martin Filip
Date: Thu Aug 21 2008 - 14:20:56 EST


Hi LKML,

I've upgraded my kernel few days earlier and suddenly my cpufreqd
stopperd working. My configuration is this:
AC adapter connected:
set scaling_max_freq and scaling_min_freq to maximal available
frequency
AC adapter disconnected:
set scaling_max_freq to maximal available, scaling_min_freq to minimal
available.

When I connect AC adapter, everything works fine but when I disconnect
my adapter, everything remains on maximal frequency and in logs I can
see:

cpufreqd: cpufreqd_set_profile: Couldn't set profile "Powersave Low" set
for cpu0

After some tests I've traced problem to

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.25.y.git;a=commitdiff;h=53391fa20cab6df6b476a5a0ad6be653c9de0c46

What do you think? Is this condition correct?

# cd /sys/devices/system/cpu/cpu0/cpufreq/

when AC adapter is connected, something like this should happen:
# cat scaling_available_frequencies
2167000 2000000 1833000 1667000 1500000 1333000 1000000
# echo 2167000 > scaling_max_freq
# echo 2167000 > scaling_min_freq

when disconnected, something like this should:
# echo 1000000 > scaling_max_freq
-su: echo: write error: Invalid argument
# echo 1000000 > scaling_min_freq

after min is set, max can be lowered to. Before this patch, lowering max
below min lead to lowering of min to the same value.

I think that this whole condition must not be here at all. After
removing this condition the kernel behaves like this:


# cat scaling_min_freq scaling_max_freq
2167000
2167000
# echo 1000000 > scaling_max_freq
# cat scaling_min_freq scaling_max_freq
1000000
1000000
# echo 2167000 > scaling_min_freq
# cat scaling_min_freq scaling_max_freq
1000000
1000000
# echo 2167000 > scaling_max_freq
# echo 2167000 > scaling_min_freq
# cat scaling_min_freq scaling_max_freq
2167000
2167000


Which I think is not perfect but is better then current behavior. What
do you think?

--
Martin Filip <bugtraq@xxxxxxxxxx>
jabber: nexus@xxxxxxxxxx

Attachment: signature.asc
Description: Toto je =?UTF-8?Q?digit=C3=A1ln=C4=9B?==?ISO-8859-1?Q?_podepsan=E1?= =?UTF-8?Q?_=C4=8D=C3=A1st?==?ISO-8859-1?Q?_zpr=E1vy?=