2.6.33-mmotm0304 - lockdep warning in ACPI code
Seen in my dmesg. Appears to have started in 2.6.33-rc7-mmotm0210, I can't remember if I reported it before or not...
[ 0.212297] ACPI: Using IOAPIC for interrupt routing
[ 0.340075]
[ 0.340076] =============================================
[ 0.340241] [ INFO: possible recursive locking detected ]
[ 0.340330] 2.6.33-mmotm0304 #5
[ 0.340415] ---------------------------------------------
[ 0.340504] swapper/1 is trying to acquire lock:
[ 0.340591] (&dev->mutex){+.+...}, at: [<ffffffff812fddfd>] __driver_attach+0x47/0x80
[ 0.340926]
[ 0.340927] but task is already holding lock:
[ 0.340999] (&dev->mutex){+.+...}, at: [<ffffffff812fddef>] __driver_attach+0x39/0x80
[ 0.340999]
[ 0.340999] other info that might help us debug this:
[ 0.340999] 1 lock held by swapper/1:
[ 0.340999] #0: (&dev->mutex){+.+...}, at: [<ffffffff812fddef>] __driver_attach+0x39/0x80
[ 0.340999]
[ 0.340999] stack backtrace:
[ 0.340999] Pid: 1, comm: swapper Not tainted 2.6.33-mmotm0304 #5
[ 0.340999] Call Trace:
[ 0.340999] [<ffffffff810645e7>] __lock_acquire+0xc74/0xceb
[ 0.340999] [<ffffffff81062a4f>] ? mark_lock+0x2d/0x22c
[ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80
[ 0.340999] [<ffffffff81064753>] lock_acquire+0xf5/0x112
[ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80
[ 0.340999] [<ffffffff81062ca0>] ? mark_held_locks+0x52/0x70
[ 0.340999] [<ffffffff81581bb5>] __mutex_lock_common+0x5c/0x5aa
[ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80
[ 0.340999] [<ffffffff81571004>] ? klist_next+0x24/0xd7
[ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80
[ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80
[ 0.340999] [<ffffffff815821a9>] mutex_lock_nested+0x34/0x39
[ 0.340999] [<ffffffff812fddfd>] __driver_attach+0x47/0x80
[ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80
[ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80
[ 0.340999] [<ffffffff812fd31f>] bus_for_each_dev+0x54/0x89
[ 0.340999] [<ffffffff812fdb66>] driver_attach+0x19/0x1b
[ 0.340999] [<ffffffff812fd7b1>] bus_add_driver+0xb4/0x203
[ 0.340999] [<ffffffff812fe10f>] driver_register+0xb8/0x129
[ 0.340999] [<ffffffff8123af12>] acpi_bus_register_driver+0x3e/0x40
[ 0.340999] [<ffffffff81b4aaa4>] acpi_ec_init+0x37/0x55
[ 0.340999] [<ffffffff81b4a920>] acpi_init+0x101/0x116
[ 0.340999] [<ffffffff81b4a81f>] ? acpi_init+0x0/0x116
[ 0.340999] [<ffffffff810001ef>] do_one_initcall+0x59/0x14e
[ 0.340999] [<ffffffff81b2c687>] kernel_init+0x14d/0x1d7
[ 0.340999] [<ffffffff810033d4>] kernel_thread_helper+0x4/0x10
[ 0.340999] [<ffffffff81584040>] ? restore_args+0x0/0x30
[ 0.340999] [<ffffffff81b2c53a>] ? kernel_init+0x0/0x1d7
[ 0.340999] [<ffffffff810033d0>] ? kernel_thread_helper+0x0/0x10
[ 0.341046] ACPI: EC: GPE = 0x11, I/O: command/status = 0x934, data = 0x930Quoted 44 lines · On Tue, 09 Mar 2010 03:46:10 -0500 [email protected] wrote:
Seen in my dmesg. Appears to have started in 2.6.33-rc7-mmotm0210, I can't remember if I reported it before or not...
[ 0.212297] ACPI: Using IOAPIC for interrupt routing [ 0.340075] [ 0.340076] ============================================= [ 0.340241] [ INFO: possible recursive locking detected ] [ 0.340330] 2.6.33-mmotm0304 #5 [ 0.340415] --------------------------------------------- [ 0.340504] swapper/1 is trying to acquire lock: [ 0.340591] (&dev->mutex){+.+...}, at: [<ffffffff812fddfd>] __driver_attach+0x47/0x80 [ 0.340926] [ 0.340927] but task is already holding lock: [ 0.340999] (&dev->mutex){+.+...}, at: [<ffffffff812fddef>] __driver_attach+0x39/0x80 [ 0.340999] [ 0.340999] other info that might help us debug this: [ 0.340999] 1 lock held by swapper/1: [ 0.340999] #0: (&dev->mutex){+.+...}, at: [<ffffffff812fddef>] __driver_attach+0x39/0x80 [ 0.340999] [ 0.340999] stack backtrace: [ 0.340999] Pid: 1, comm: swapper Not tainted 2.6.33-mmotm0304 #5 [ 0.340999] Call Trace: [ 0.340999] [<ffffffff810645e7>] __lock_acquire+0xc74/0xceb [ 0.340999] [<ffffffff81062a4f>] ? mark_lock+0x2d/0x22c [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff81064753>] lock_acquire+0xf5/0x112 [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff81062ca0>] ? mark_held_locks+0x52/0x70 [ 0.340999] [<ffffffff81581bb5>] __mutex_lock_common+0x5c/0x5aa [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff81571004>] ? klist_next+0x24/0xd7 [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80 [ 0.340999] [<ffffffff815821a9>] mutex_lock_nested+0x34/0x39 [ 0.340999] [<ffffffff812fddfd>] __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80 [ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80 [ 0.340999] [<ffffffff812fd31f>] bus_for_each_dev+0x54/0x89 [ 0.340999] [<ffffffff812fdb66>] driver_attach+0x19/0x1b [ 0.340999] [<ffffffff812fd7b1>] bus_add_driver+0xb4/0x203 [ 0.340999] [<ffffffff812fe10f>] driver_register+0xb8/0x129 [ 0.340999] [<ffffffff8123af12>] acpi_bus_register_driver+0x3e/0x40 [ 0.340999] [<ffffffff81b4aaa4>] acpi_ec_init+0x37/0x55 [ 0.340999] [<ffffffff81b4a920>] acpi_init+0x101/0x116
Quoted 9 lines
[ 0.340999] [<ffffffff81b4a81f>] ? acpi_init+0x0/0x116 [ 0.340999] [<ffffffff810001ef>] do_one_initcall+0x59/0x14e [ 0.340999] [<ffffffff81b2c687>] kernel_init+0x14d/0x1d7 [ 0.340999] [<ffffffff810033d4>] kernel_thread_helper+0x4/0x10 [ 0.340999] [<ffffffff81584040>] ? restore_args+0x0/0x30 [ 0.340999] [<ffffffff81b2c53a>] ? kernel_init+0x0/0x1d7 [ 0.340999] [<ffffffff810033d0>] ? kernel_thread_helper+0x0/0x10 [ 0.341046] ACPI: EC: GPE = 0x11, I/O: command/status = 0x934, data = 0x930
<looks at mainline's 8e9394ce2412254ec69fd2a4f3e44a66eade2297>
In the future, we are going to be changing the lock type for struct device (once we get the lockdep infrastructure properly worked out)
<looks at linux-next's "drivers/base: Convert dev->sem to mutex">
Seems that the latter patch (from Greg and Thomas) went and did the mutex conversion before "we got the lockdep infrastructure properly worked out".
Quoted 59 lines · Andrew Morton
Quoted 44 lines · On Tue, 09 Mar 2010 03:46:10 -0500 [email protected] wrote:
Seen in my dmesg. Appears to have started in 2.6.33-rc7-mmotm0210, I can't remember if I reported it before or not...
[ 0.212297] ACPI: Using IOAPIC for interrupt routing [ 0.340075] [ 0.340076] ============================================= [ 0.340241] [ INFO: possible recursive locking detected ] [ 0.340330] 2.6.33-mmotm0304 #5 [ 0.340415] --------------------------------------------- [ 0.340504] swapper/1 is trying to acquire lock: [ 0.340591] (&dev->mutex){+.+...}, at: [<ffffffff812fddfd>] __driver_attach+0x47/0x80 [ 0.340926] [ 0.340927] but task is already holding lock: [ 0.340999] (&dev->mutex){+.+...}, at: [<ffffffff812fddef>] __driver_attach+0x39/0x80 [ 0.340999] [ 0.340999] other info that might help us debug this: [ 0.340999] 1 lock held by swapper/1: [ 0.340999] #0: (&dev->mutex){+.+...}, at: [<ffffffff812fddef>] __driver_attach+0x39/0x80 [ 0.340999] [ 0.340999] stack backtrace: [ 0.340999] Pid: 1, comm: swapper Not tainted 2.6.33-mmotm0304 #5 [ 0.340999] Call Trace: [ 0.340999] [<ffffffff810645e7>] __lock_acquire+0xc74/0xceb [ 0.340999] [<ffffffff81062a4f>] ? mark_lock+0x2d/0x22c [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff81064753>] lock_acquire+0xf5/0x112 [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff81062ca0>] ? mark_held_locks+0x52/0x70 [ 0.340999] [<ffffffff81581bb5>] __mutex_lock_common+0x5c/0x5aa [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff81571004>] ? klist_next+0x24/0xd7 [ 0.340999] [<ffffffff812fddfd>] ? __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80 [ 0.340999] [<ffffffff815821a9>] mutex_lock_nested+0x34/0x39 [ 0.340999] [<ffffffff812fddfd>] __driver_attach+0x47/0x80 [ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80 [ 0.340999] [<ffffffff812fddb6>] ? __driver_attach+0x0/0x80 [ 0.340999] [<ffffffff812fd31f>] bus_for_each_dev+0x54/0x89 [ 0.340999] [<ffffffff812fdb66>] driver_attach+0x19/0x1b [ 0.340999] [<ffffffff812fd7b1>] bus_add_driver+0xb4/0x203 [ 0.340999] [<ffffffff812fe10f>] driver_register+0xb8/0x129 [ 0.340999] [<ffffffff8123af12>] acpi_bus_register_driver+0x3e/0x40 [ 0.340999] [<ffffffff81b4aaa4>] acpi_ec_init+0x37/0x55 [ 0.340999] [<ffffffff81b4a920>] acpi_init+0x101/0x116Quoted 9 lines
[ 0.340999] [<ffffffff81b4a81f>] ? acpi_init+0x0/0x116 [ 0.340999] [<ffffffff810001ef>] do_one_initcall+0x59/0x14e [ 0.340999] [<ffffffff81b2c687>] kernel_init+0x14d/0x1d7 [ 0.340999] [<ffffffff810033d4>] kernel_thread_helper+0x4/0x10 [ 0.340999] [<ffffffff81584040>] ? restore_args+0x0/0x30 [ 0.340999] [<ffffffff81b2c53a>] ? kernel_init+0x0/0x1d7 [ 0.340999] [<ffffffff810033d0>] ? kernel_thread_helper+0x0/0x10 [ 0.341046] ACPI: EC: GPE = 0x11, I/O: command/status = 0x934, data = 0x930<looks at mainline's
8e9394ce2412254ec69fd2a4f3e44a66eade2297>
Quoted 8 lines
In the future, we are going to be changing the lock type for struct device (once we get the lockdep infrastructure properly worked out)
<looks at linux-next's "
drivers/base: Convertdev->semto mutex">Seems that the latter patch (from Greg and Thomas) went and did the mutex conversion before "we got the lockdep infrastructure properly worked out".
Peter and Thomas have a lockdep patch that resolves this, I thought it was going in through one of their trees, but in talking with them yesterday, I was wrong. I will be adding the patch to my tree, right before the "convert to mutex" patch, so this will not show up in the future.
thanks,
greg k-h