Bug 15264 - cpufreq: possible recursive locking detected
Summary: cpufreq: possible recursive locking detected
Status: CLOSED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Power Management
Classification: Unclassified
Component: cpufreq (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: cpufreq
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-09 22:06 UTC by Ivan Bulatovic
Modified: 2011-07-30 06:26 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.33-rc5
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Ivan Bulatovic 2010-02-09 22:06:50 UTC
After waking up from suspend I get this in dmesg:

[  508.708907] =============================================
[  508.708912] [ INFO: possible recursive locking detected ]
[  508.708915] 2.6.33-rc5-TESTING-50523-g0d0e2fe-dirty #1
[  508.708918] ---------------------------------------------
[  508.708921] 94cpufreq/3825 is trying to acquire lock:
[  508.708923]  (s_active){++++.+}, at: [<ffffffff8112aedc>] sysfs_addrm_finish+0x31/0x50
[  508.708935] 
[  508.708936] but task is already holding lock:
[  508.708938]  (s_active){++++.+}, at: [<ffffffff8112b048>] sysfs_get_active_two+0x1f/0x43
[  508.708946] 
[  508.708947] other info that might help us debug this:
[  508.708950] 4 locks held by 94cpufreq/3825:
[  508.708952]  #0:  (&buffer->mutex){+.+.+.}, at: [<ffffffff81129c4c>] sysfs_write_file+0x37/0x13f
[  508.708961]  #1:  (s_active){++++.+}, at: [<ffffffff8112b048>] sysfs_get_active_two+0x1f/0x43
[  508.708969]  #2:  (s_active){++++.+}, at: [<ffffffff8112b055>] sysfs_get_active_two+0x2c/0x43
[  508.708977]  #3:  (dbs_mutex){+.+.+.}, at: [<ffffffffa01fdcf7>] cpufreq_governor_dbs+0x286/0x32b [cpufreq_ondemand]
[  508.708988] 
[  508.708989] stack backtrace:
[  508.708993] Pid: 3825, comm: 94cpufreq Not tainted 2.6.33-rc5-TESTING-50523-g0d0e2fe-dirty #1
[  508.708996] Call Trace:
[  508.709001]  [<ffffffff81066c34>] __lock_acquire+0xc8d/0xd09
[  508.709008]  [<ffffffff81065460>] ? mark_held_locks+0x52/0x70
[  508.709013]  [<ffffffff8106587e>] ? debug_check_no_locks_freed+0x12e/0x145
[  508.709018]  [<ffffffff81065716>] ? trace_hardirqs_on_caller+0x119/0x144
[  508.709023]  [<ffffffff8112aedc>] ? sysfs_addrm_finish+0x31/0x50
[  508.709027]  [<ffffffff81066d91>] lock_acquire+0xe1/0x105
[  508.709032]  [<ffffffff8112aedc>] ? sysfs_addrm_finish+0x31/0x50
[  508.709037]  [<ffffffff8112a951>] sysfs_deactivate+0x86/0xc3
[  508.709042]  [<ffffffff8112aedc>] ? sysfs_addrm_finish+0x31/0x50
[  508.709048]  [<ffffffff8112aedc>] sysfs_addrm_finish+0x31/0x50
[  508.709053]  [<ffffffff811292b9>] sysfs_hash_and_remove+0x4e/0x65
[  508.709059]  [<ffffffff8112c07a>] sysfs_remove_group+0x6c/0xa4
[  508.709065]  [<ffffffffa01fdd0a>] cpufreq_governor_dbs+0x299/0x32b [cpufreq_ondemand]
[  508.709073]  [<ffffffff812658ca>] __cpufreq_governor+0x64/0xa1
[  508.709078]  [<ffffffff81266262>] __cpufreq_set_policy+0xf6/0x151
[  508.709083]  [<ffffffff81266913>] store_scaling_governor+0x190/0x1ca
[  508.709088]  [<ffffffff812672e5>] ? handle_update+0x0/0xe
[  508.709093]  [<ffffffff81266b28>] store+0x56/0x79
[  508.709098]  [<ffffffff81129d18>] sysfs_write_file+0x103/0x13f
[  508.709104]  [<ffffffff810d7295>] vfs_write+0xa9/0x106
[  508.709109]  [<ffffffff81065716>] ? trace_hardirqs_on_caller+0x119/0x144
[  508.709113]  [<ffffffff810d73a8>] sys_write+0x45/0x69
[  508.709119]  [<ffffffff81002b02>] system_call_fastpath+0x16/0x1b

Linux vostro 2.6.33-rc5-TESTING-50523-g0d0e2fe-dirty #1 SMP PREEMPT Tue Feb 9 22:22:16 CET 2010 x86_64 Intel(R) Core(TM)2 Duo CPU T5670 @ 1.80GHz GenuineIntel GNU/Linux

I have debug locks in kernel hacking section enabled for another reasons, I found this by reviewing dmesg by accident. I don't have any problems with cpufreq before or after suspending my laptop (Dell Vostro 1310) but though this is something worth reporting.
Comment 1 Markos Chandras 2010-04-29 17:03:46 UTC
Same problem for me ( tested with 2.6.33 )


[   20.899822] [ INFO: possible recursive locking detected ]
[   20.901240] 2.6.33-zen2-night-elf #1
[   20.902660] ---------------------------------------------
[   20.904088] cpufreqd/2775 is trying to acquire lock:
[   20.905505]  (s_active){++++.+}, at: [<ffffffff8111a531>] sysfs_addrm_finish+0x31/0x5a
[   20.905595] 
[   20.905595] but task is already holding lock:
[   20.905595]  (s_active){++++.+}, at: [<ffffffff8111a79e>] sysfs_get_active_two+0x1f/0x45
[   20.905595] 
[   20.905595] other info that might help us debug this:
[   20.905595] 4 locks held by cpufreqd/2775:
[   20.905595]  #0:  (&buffer->mutex){+.+.+.}, at: [<ffffffff811190e5>] sysfs_write_file+0x37/0x13f
[   20.905595]  #1:  (s_active){++++.+}, at: [<ffffffff8111a79e>] sysfs_get_active_two+0x1f/0x45
[   20.905595]  #2:  (s_active){++++.+}, at: [<ffffffff8111a7ab>] sysfs_get_active_two+0x2c/0x45
[   20.905595]  #3:  (dbs_mutex){+.+.+.}, at: [<ffffffff8151c26d>] cpufreq_governor_dbs+0x33e/0x3e9
[   20.905595] 
[   20.905595] stack backtrace:
[   20.905595] Pid: 2775, comm: cpufreqd Not tainted 2.6.33-zen2-night-elf #1
[   20.905595] Call Trace:
[   20.905595]  [<ffffffff81056e3e>] validate_chain+0x5ab/0xd83
[   20.905595]  [<ffffffff8104afb2>] ? sched_clock_cpu+0xcf/0xdd
[   20.905595]  [<ffffffff81053fa7>] ? trace_hardirqs_off+0xd/0xf
[   20.905595]  [<ffffffff81057efa>] __lock_acquire+0x8e4/0x964
[   20.905595]  [<ffffffff8105800a>] lock_acquire+0x90/0xb1
[   20.905595]  [<ffffffff8111a531>] ? sysfs_addrm_finish+0x31/0x5a
[   20.905595]  [<ffffffff81119c36>] sysfs_deactivate+0x86/0xdb
[   20.905595]  [<ffffffff8111a531>] ? sysfs_addrm_finish+0x31/0x5a
[   20.905595]  [<ffffffff8164387c>] ? __mutex_unlock_slowpath+0x114/0x13f
[   20.905595]  [<ffffffff8111a531>] sysfs_addrm_finish+0x31/0x5a
[   20.905595]  [<ffffffff8111888d>] sysfs_hash_and_remove+0x4e/0x65
[   20.905595]  [<ffffffff8111b4e8>] sysfs_remove_group+0x8c/0xc5
[   20.905595]  [<ffffffff8151c281>] cpufreq_governor_dbs+0x352/0x3e9
[   20.905595]  [<ffffffff8151974a>] ? unlock_policy_rwsem_write+0x38/0x3a
[   20.905595]  [<ffffffff81053fc9>] ? get_lock_stats+0x20/0x4c
[   20.905595]  [<ffffffff81054003>] ? put_lock_stats+0xe/0x27
[   20.905595]  [<ffffffff81054120>] ? lock_release_holdtime+0x104/0x109
[   20.905595]  [<ffffffff81518f32>] __cpufreq_governor+0xe8/0x126
[   20.905595]  [<ffffffff81519d43>] __cpufreq_set_policy+0x18a/0x222
[   20.905595]  [<ffffffff8151a220>] store_scaling_governor+0x190/0x1ca
[   20.905595]  [<ffffffff8151a991>] ? handle_update+0x0/0x33
[   20.905595]  [<ffffffff81519b96>] store+0x59/0x7c
[   20.905595]  [<ffffffff811191b1>] sysfs_write_file+0x103/0x13f
[   20.905595]  [<ffffffff810c9956>] vfs_write+0xad/0x172
[   20.905595]  [<ffffffff810c9ad4>] sys_write+0x45/0x6c
[   20.905595]  [<ffffffff810020c2>] system_call_fastpath+0x16/0x1b
[   21.423012] r8169: eth0: link down
[   21.462253] iwlagn 0000:04:00.0: firmware: requesting iwlwifi-4965-2.ucode
[   21.463751] PM: Adding info for No Bus:0000:04:00.0
[   21.574040] PM: Removing info for No Bus:0000:04:00.0
[   21.575653] iwlagn 0000:04:00.0: loaded firmware version 228.61.2.24
Comment 2 Ivan Bulatovic 2010-05-01 10:54:14 UTC
I think that this is fixed. No problems with 2.6.34-rc6. I'll test it further...
Comment 3 Markos Chandras 2010-05-01 10:57:01 UTC
Is that so? I tried the latest commits on cpufreq drivers but it still doesn't work for me :(

I use cpufrequtils now and it works for me atm
Comment 4 Ivan Bulatovic 2010-05-01 20:00:40 UTC
http://lkml.org/lkml/2010/4/30/36

Amerigo Wang (1):
      [CPUFREQ] fix a lockdep warning

commit ddc9b34c3b3bc063a7d9eb891ae09b8f49cfb27e

I guess this is it :D

Note You need to log in before you can comment on or make changes to this bug.