Messages in this thread | | | Date | Tue, 1 Jun 2004 15:15:53 +0200 | From | Pavel Machek <> | Subject | PREEMPT problems in cpufreq/powernow-k8 |
| |
Hi!
I enabled CONFIG_PREEMPT to test swsusp, and it uncovered some problems with powernow-k8:
md: Autodetecting RAID arrays. md: autorun ... md: ... autorun DONE. VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 204k freed Debug: sleeping function called from invalid context at include/linux/rwsem.h:43 in_atomic():1, irqs_disabled():0 Call Trace: [<c011b91a>] __might_sleep+0xaa/0xb8 [<c0333dd2>] cpufreq_notify_transition+0x32/0x168 [<c010fd5d>] transition_frequency+0xa1/0x104 [<c010fe9b>] powernowk8_target+0xdb/0x130 [<c03337ab>] __cpufreq_driver_target+0x1b/0x20 [<c03341ea>] cpufreq_governor_performance+0x1e/0x24 [<c033388a>] __cpufreq_governor+0x6e/0x10c [<c0333c5d>] __cpufreq_set_policy+0x139/0x144 [<c0333cb5>] cpufreq_set_policy+0x4d/0x94 [<c0334896>] cpufreq_proc_write+0x9e/0xb8 [<c0142440>] handle_mm_fault+0xc8/0x134 [<c0119217>] do_page_fault+0x13f/0x4fb [<c01190d8>] do_page_fault+0x0/0x4fb [<c0175c13>] proc_file_write+0x27/0x34 [<c014d67c>] vfs_write+0xa0/0xd0 [<c014d729>] sys_write+0x31/0x4c [<c0104ce7>] syscall_call+0x7/0xb
Adding 1051304k swap on /dev/hda1. Priority:-1 extents:1
powernowk8_target does preempt_disable(), and that calls cpufreq_notify_transition(). That does down(). Ouch.
Hmm, but on SMP systems frequency really should be changed with preempt_disable. How to deal with that? Pavel
[Plus I get some more warnings during swsusp, all seem to be powernow-k8 related...] -- 934a471f20d6580d5aad759bf0d97ddc
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |