Hi, On iMac G5 (the first model, windfarm_pm81 reports "model 3"), enabling LOCKDEP results in the following warnings when overtemp condition is encountered.
The kernel is 3.8-rc6+ / 6bacaa9. [ 7060.058340] windfarm: Clamping CPU frequency to minimum ! [ 7060.229688] [ 7060.229756] ====================================================== [ 7060.229799] [ INFO: possible circular locking dependency detected ] [ 7060.229847] 3.8.0-rc6-imac-00113-g6bacaa9 #2 Not tainted [ 7060.229882] ------------------------------------------------------- [ 7060.229923] kwindfarm/475 is trying to acquire lock: [ 7060.229958] (wf_lock){+.+.+.}, at: [<c000000000447b54>] .wf_set_overtemp+0x34/0xb0 [ 7060.230070] [ 7060.230070] but task is already holding lock: [ 7060.230111] ((wf_client_list).rwsem){.+.+.+}, at: [<c0000000000851a8>] .__blocking_notifier_call_chain+0x78/0x110 [ 7060.230219] [ 7060.230219] which lock already depends on the new lock. [ 7060.230219] [ 7060.230275] [ 7060.230275] the existing dependency chain (in reverse order) is: [ 7060.230326] [ 7060.230326] -> #1 ((wf_client_list).rwsem){.+.+.+}: [ 7060.230407] [<c0000000006cbf98>] .down_read+0x58/0xa0 [ 7060.230463] [<c0000000000851a8>] .__blocking_notifier_call_chain+0x78/0x110 [ 7060.230521] [<c000000000447d70>] .wf_register_client+0xb0/0x1b0 [ 7060.230573] [<c000000000449f0c>] .wf_smu_probe+0x1c/0x40 [ 7060.230621] [<c00000000042e7d0>] .platform_drv_probe+0x30/0x50 [ 7060.230681] [<c00000000042c868>] .driver_probe_device+0xa8/0x290 [ 7060.230735] [<c00000000042cb5c>] .__driver_attach+0x10c/0x110 [ 7060.230787] [<c00000000042a10c>] .bus_for_each_dev+0x7c/0xe0 [ 7060.230837] [<c00000000042c1c8>] .driver_attach+0x28/0x40 [ 7060.230888] [<c00000000042bba8>] .bus_add_driver+0x1f8/0x330 [ 7060.230937] [<c00000000042d4f4>] .driver_register+0xa4/0x230 [ 7060.230989] [<c00000000042eb10>] .platform_driver_register+0x60/0x80 [ 7060.231044] [<c000000000949924>] .wf_smu_init+0x8c/0xa8 [ 7060.231098] [<c000000000009aa8>] .do_one_initcall+0x168/0x1e0 [ 7060.231151] [<c000000000927b70>] .kernel_init_freeable+0x134/0x204 [ 7060.231209] [<c00000000000a1bc>] .kernel_init+0x1c/0x120 [ 7060.231256] [<c000000000008aa0>] .ret_from_kernel_thread+0x64/0xc4 [ 7060.231311] [ 7060.231311] -> #0 (wf_lock){+.+.+.}: [ 7060.231381] [<c0000000000a3efc>] .lock_acquire+0x5c/0x90 [ 7060.231434] [<c0000000006cb5b0>] .mutex_lock_nested+0x90/0x3b0 [ 7060.231488] [<c000000000447b54>] .wf_set_overtemp+0x34/0xb0 [ 7060.231539] [<c00000000044a844>] .wf_smu_notify+0x914/0xf90 [ 7060.231590] [<c000000000084e2c>] .notifier_call_chain+0xcc/0x1f0 [ 7060.231643] [<c0000000000851c4>] .__blocking_notifier_call_chain+0x94/0x110 [ 7060.231699] [<c000000000448a18>] .wf_thread_func+0x88/0x150 [ 7060.231747] [<c00000000007c22c>] .kthread+0xec/0x100 [ 7060.231794] [<c000000000008aa0>] .ret_from_kernel_thread+0x64/0xc4 [ 7060.231850] [ 7060.231850] other info that might help us debug this: [ 7060.231850] [ 7060.231905] Possible unsafe locking scenario: [ 7060.231905] [ 7060.231945] CPU0 CPU1 [ 7060.231976] ---- ---- [ 7060.232007] lock((wf_client_list).rwsem); [ 7060.232054] lock(wf_lock); [ 7060.232104] lock((wf_client_list).rwsem); [ 7060.232160] lock(wf_lock); [ 7060.233707] [ 7060.233707] *** DEADLOCK *** [ 7060.233707] [ 7060.238238] 1 lock held by kwindfarm/475: [ 7060.239756] #0: ((wf_client_list).rwsem){.+.+.+}, at: [<c0000000000851a8>] .__blocking_notifier_call_chain+0x78/0x110 [ 7060.241354] [ 7060.241354] stack backtrace: [ 7060.244453] Call Trace: [ 7060.246001] [c0000000564534f0] [c000000000012978] .show_stack+0x78/0x1b0 (unreliable) [ 7060.247582] [c0000000564535a0] [c0000000006d09c8] .print_circular_bug+0x2e8/0x320 [ 7060.249157] [c000000056453650] [c0000000000a36c0] .__lock_acquire+0x17b0/0x1a70 [ 7060.250734] [c0000000564537d0] [c0000000000a3efc] .lock_acquire+0x5c/0x90 [ 7060.252305] [c000000056453870] [c0000000006cb5b0] .mutex_lock_nested+0x90/0x3b0 [ 7060.253879] [c000000056453960] [c000000000447b54] .wf_set_overtemp+0x34/0xb0 [ 7060.255460] [c0000000564539f0] [c00000000044a844] .wf_smu_notify+0x914/0xf90 [ 7060.257019] [c000000056453ad0] [c000000000084e2c] .notifier_call_chain+0xcc/0x1f0 [ 7060.258598] [c000000056453b80] [c0000000000851c4] .__blocking_notifier_call_chain+0x94/0x110 [ 7060.260169] [c000000056453c30] [c000000000448a18] .wf_thread_func+0x88/0x150 [ 7060.261725] [c000000056453cc0] [c00000000007c22c] .kthread+0xec/0x100 [ 7060.263267] [c000000056453e30] [c000000000008aa0] .ret_from_kernel_thread+0x64/0xc4 [ 7060.270273] windfarm: Overtemp condition detected ! [ 7062.033879] windfarm: CPU frequency unclamped ! [ 7062.035508] windfarm: Overtemp condition cleared ! [ 7221.058391] windfarm: Clamping CPU frequency to minimum ! [ 7221.196337] windfarm: Overtemp condition detected ! [ 7223.030000] windfarm: CPU frequency unclamped ! [ 7223.067554] windfarm: Overtemp condition cleared ! A. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/