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: []
.wf_set_overtemp+0x34/0xb0
[ 7060.230070]
[ 7060.230070] but task is already holding lock:
[ 7060.230111] ((wf_client_list).rwsem){.+.+.+}, at: []
.__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][] .down_read+0x58/0xa0
[ 7060.230463][]
.__blocking_notifier_call_chain+0x78/0x110
[ 7060.230521][] .wf_register_client+0xb0/0x1b0
[ 7060.230573][] .wf_smu_probe+0x1c/0x40
[ 7060.230621][] .platform_drv_probe+0x30/0x50
[ 7060.230681][] .driver_probe_device+0xa8/0x290
[ 7060.230735][] .__driver_attach+0x10c/0x110
[ 7060.230787][] .bus_for_each_dev+0x7c/0xe0
[ 7060.230837][] .driver_attach+0x28/0x40
[ 7060.230888][] .bus_add_driver+0x1f8/0x330
[ 7060.230937][] .driver_register+0xa4/0x230
[ 7060.230989][] .platform_driver_register+0x60/0x80
[ 7060.231044][] .wf_smu_init+0x8c/0xa8
[ 7060.231098][] .do_one_initcall+0x168/0x1e0
[ 7060.231151][] .kernel_init_freeable+0x134/0x204
[ 7060.231209][] .kernel_init+0x1c/0x120
[ 7060.231256][] .ret_from_kernel_thread+0x64/0xc4
[ 7060.231311]
[ 7060.231311] -> #0 (wf_lock){+.+.+.}:
[ 7060.231381][] .lock_acquire+0x5c/0x90
[ 7060.231434][] .mutex_lock_nested+0x90/0x3b0
[ 7060.231488][] .wf_set_overtemp+0x34/0xb0
[ 7060.231539][] .wf_smu_notify+0x914/0xf90
[ 7060.231590][] .notifier_call_chain+0xcc/0x1f0
[ 7060.231643][]
.__blocking_notifier_call_chain+0x94/0x110
[ 7060.231699][] .wf_thread_func+0x88/0x150
[ 7060.231747][] .kthread+0xec/0x100
[ 7060.231794][] .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]CPU0CPU1
[ 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: []
.__blocking_notifier_call_chain+0x78/0x110
[ 7060.241354]
[ 7060.241354] stack backtrace:
[ 7060.244453] Call Trace:
[ 7060.246001] [c000564534f0] [c0012978] .show_stack+0x78/0x1b0
(unreliable)
[ 7060.247582] [c000564535a0] [c06d09c8]
.print_circular_bug+0x2e8/0x320
[ 7060.249157] [c00056453650] [c00a36c0]
.__lock_acquire+0x17b0/0x1a70
[ 7060.250734] [c000564537d0] [c00a3efc] .lock_acquire+0x5c/0x90
[ 7060.252305] [c00056453870] [c06cb5b0]
.mutex_lock_nested+0x90/0x3b0
[ 7060.253879] [c00056453960] [c0447b54] .wf_set_overtemp+0x34/0xb0
[ 7060.255460] [c000564539f0] [c044a844] .wf_smu_notify+0x914/0xf90
[ 7060.257019] [c00056453ad0] [c0084e2c]
.notifier_call_chain+0xcc/0x1f0
[ 7060.258598] [c00056453b80] [c00851c4]
.__blocking_notifier_call_chain+0x94/0x110
[ 7060.260169] [c00056453c30] [c0448a18] .wf_thread_func+0x88/0x150
[ 7060.261725] [c00056453cc0] [c007c22c] .kthread+0xec/0x100
[ 7060.263267] [c00056453e30] [c0008aa0]
.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.03] 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/