FS#16312 - [kernel26] unable to change cpufreq governor

Attached to Project: Arch Linux
Opened by Alex Laskin (dss) - Tuesday, 22 September 2009, 02:32 GMT
Last edited by Paul Mattal (paul) - Saturday, 07 November 2009, 23:38 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Architecture i686
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
Just after boot /etc/rc.d/cpufreq script sets governor to ondemand and everything works fine until I try to change governor to something else.
If I then do cpufreq-set -g powersave, cpufreq-set freezes and after 2 minutes I have these errors in kernel.log
Sep 22 05:56:56 blackfire kernel: INFO: task cpufreq-set:2291 blocked for more than 120 seconds.
Sep 22 05:56:56 blackfire kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Sep 22 05:56:56 blackfire kernel: cpufreq-set D c01023cd 0 2291 2276
Sep 22 05:56:56 blackfire kernel: f4723400 00000082 f4723400 c01023cd 995d0b2f f69e3400 995d0b2f c0132f13
Sep 22 05:56:56 blackfire kernel: 995d0b2f f6b4ba40 000004ff c0542ac0 f47235a8 c053f1a4 c0542ac0 213b7979
Sep 22 05:56:56 blackfire kernel: 000004ff f47235a8 c0542ac0 c03daee0 f7027800 00000046 00000000 000004ff
Sep 22 05:56:56 blackfire kernel: Call Trace:
Sep 22 05:56:56 blackfire kernel: [<c01023cd>] ? __switch_to+0xbd/0x1a0
Sep 22 05:56:56 blackfire kernel: [<c0132f13>] ? finish_task_switch+0xd3/0x110
Sep 22 05:56:56 blackfire kernel: [<c03cfe00>] ? schedule+0x20/0x50
Sep 22 05:56:56 blackfire kernel: [<c03d0255>] ? schedule_timeout+0x155/0x1c0
Sep 22 05:56:56 blackfire kernel: [<c0154a41>] ? autoremove_wake_function+0x21/0x60
Sep 22 05:56:56 blackfire kernel: [<c03cf303>] ? wait_for_common+0xa3/0x140
Sep 22 05:56:56 blackfire kernel: [<c0136700>] ? default_wake_function+0x0/0x30
Sep 22 05:56:56 blackfire kernel: [<c01502a4>] ? __cancel_work_timer+0x174/0x180
Sep 22 05:56:56 blackfire kernel: [<c014fd10>] ? wq_barrier_func+0x0/0x30
Sep 22 05:56:56 blackfire kernel: [<fb430c16>] ? cpufreq_governor_dbs+0xe6/0x370 [cpufreq_ondemand]
Sep 22 05:56:56 blackfire kernel: [<c015a266>] ? notifier_call_chain+0x46/0x80
Sep 22 05:56:56 blackfire kernel: [<c015a6ad>] ? __blocking_notifier_call_chain+0x6d/0xa0
Sep 22 05:56:56 blackfire kernel: [<c031a53a>] ? __cpufreq_governor+0xba/0x130
Sep 22 05:56:56 blackfire kernel: [<c031a89f>] ? __cpufreq_set_policy+0xff/0x150
Sep 22 05:56:56 blackfire kernel: [<c031b817>] ? store_scaling_governor+0xe7/0x210
Sep 22 05:56:56 blackfire kernel: [<c031c630>] ? handle_update+0x0/0x30
Sep 22 05:56:56 blackfire kernel: [<c031b730>] ? store_scaling_governor+0x0/0x210
Sep 22 05:56:56 blackfire kernel: [<c031c4dc>] ? store+0x5c/0xa0
Sep 22 05:56:56 blackfire kernel: [<c022a04e>] ? sysfs_write_file+0xae/0x130
Sep 22 05:56:56 blackfire kernel: [<c01d0d58>] ? vfs_write+0xc8/0x190
Sep 22 05:56:56 blackfire kernel: [<c0229fa0>] ? sysfs_write_file+0x0/0x130
Sep 22 05:56:56 blackfire kernel: [<c01d0f3f>] ? sys_write+0x5f/0xb0
Sep 22 05:56:56 blackfire kernel: [<c0103cb3>] ? sysenter_do_call+0x12/0x28
Sep 22 05:58:56 blackfire kernel: INFO: task kondemand/0:1708 blocked for more than 120 seconds.
Sep 22 05:58:56 blackfire kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Sep 22 05:58:56 blackfire kernel: kondemand/0 D 00002513 0 1708 2
Sep 22 05:58:56 blackfire kernel: f69e3400 00000046 c1fefaf8 00002513 00000000 c012d671 d0401d09 00000023
Sep 22 05:58:56 blackfire kernel: 14d7f309 f6b4ba40 ffffffff c0542ac0 f69e35a8 c053f1a4 c0542ac0 5d6f3685
Sep 22 05:58:56 blackfire kernel: 3fe3bfe2 f69e35a8 c0542ac0 0017c611 f69e342c c012e7d6 f69e3400 00000023
Sep 22 05:58:56 blackfire kernel: Call Trace:
Sep 22 05:58:56 blackfire kernel: [<c012d671>] ? update_curr+0x1e1/0x1f0
Sep 22 05:58:56 blackfire kernel: [<c012e7d6>] ? dequeue_task_fair+0x46/0x1e0
Sep 22 05:58:56 blackfire kernel: [<c03cfe00>] ? schedule+0x20/0x50
Sep 22 05:58:56 blackfire kernel: [<c03d22d5>] ? rwsem_down_failed_common+0xa5/0x1c0
Sep 22 05:58:56 blackfire kernel: [<c01023cd>] ? __switch_to+0xbd/0x1a0
Sep 22 05:58:56 blackfire kernel: [<fb4307a0>] ? do_dbs_timer+0x0/0x390 [cpufreq_ondemand]
Sep 22 05:58:56 blackfire kernel: [<c03d2418>] ? rwsem_down_write_failed+0x28/0x50
Sep 22 05:58:56 blackfire kernel: [<c03d24c6>] ? call_rwsem_down_write_failed+0x6/0x8
Sep 22 05:58:56 blackfire kernel: [<c03d1711>] ? down_write+0x21/0x40
Sep 22 05:58:56 blackfire kernel: [<c031be73>] ? lock_policy_rwsem_write+0x43/0x90
Sep 22 05:58:56 blackfire kernel: [<fb4307ef>] ? do_dbs_timer+0x4f/0x390 [cpufreq_ondemand]
Sep 22 05:58:56 blackfire kernel: [<fb4307a0>] ? do_dbs_timer+0x0/0x390 [cpufreq_ondemand]
Sep 22 05:58:56 blackfire kernel: [<c014f6ff>] ? worker_thread+0x11f/0x280
Sep 22 05:58:56 blackfire kernel: [<c0154a20>] ? autoremove_wake_function+0x0/0x60
Sep 22 05:58:56 blackfire kernel: [<c014f5e0>] ? worker_thread+0x0/0x280
Sep 22 05:58:56 blackfire kernel: [<c0154572>] ? kthread+0x52/0x90
Sep 22 05:58:56 blackfire kernel: [<c0154520>] ? kthread+0x0/0x90
Sep 22 05:58:56 blackfire kernel: [<c0104807>] ? kernel_thread_helper+0x7/0x10

After that, every process that tries to access files in /sys/devices/system/cpu/cpu0/cpufreq/ freezes as well.
(i.e. strace cpufreq-info halts on
write(1, "analyzing CPU 0:\n"..., 17) = 17
open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", O_RDONLY) = 3
read(3, [HALTS HERE])

Additional info:
I had have this problem since upgrade to 2.6.28, and now I have fresh
Linux blackfire 2.6.30-ARCH #1 SMP PREEMPT Wed Sep 9 12:37:32 UTC 2009 i686 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz GenuineIntel GNU/Linux

Watching for /proc/cpuinfo shows, that old ondemand governor still works fine after this error, adjusting frequency accordingly to load.

Also I have tried to change cpufreq configs, to load powersave, for example, on boot. Same story: powersave works, but any attempt to change it fails.

I've searched through forum and bugs database... Seems that this problem is not unique to me, but is unresolved yet.
If you ask, I'll provide you with any information that could be relevant to this bug.

Sincerely yours, Alex Laskin.
This task depends upon

Closed by  Paul Mattal (paul)
Saturday, 07 November 2009, 23:38 GMT
Reason for closing:  Upstream
Additional comments about closing:  Upstream. No response in +1 month.
Comment by Alex Laskin (dss) - Tuesday, 22 September 2009, 02:54 GMT
There is something really broken in kernel, because if I try to modprobe cpufreq_stats afterall, modporbe freezes too...
Comment by Gerardo Exequiel Pozzi (djgera) - Tuesday, 22 September 2009, 17:23 GMT
  • Field changed: Summary (unable to change cpufreq governor → [kernel26] unable to change cpufreq governor)
  • Field changed: Status (Unconfirmed → Waiting on Response)
  • Field changed: Category (Kernel → Upstream Bugs)
  • Task assigned to Tobias Powalowski (tpowa)
Please report this to upstream (if not reported already)

Loading...