Skip to contentSkip to conversation

2.6.33-mmotm0304 - lockdep warning in ACPI code

DISCUSSION [email protected] 3 participants 3 messages Mar 9, 2010 – Mar 18, 2010 ACPI

lore
Share & tools
lore
#0 lore raw

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 = 0x930
#1 lore raw
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/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".

#2 lore raw
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/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>

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: 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".

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