* [BUG] scsi/io-elevator held lock freed.
@ 2006-07-04 14:54 Daniel Walker
2006-07-04 15:13 ` Arjan van de Ven
0 siblings, 1 reply; 4+ messages in thread
From: Daniel Walker @ 2006-07-04 14:54 UTC (permalink / raw)
To: linux-kernel; +Cc: linux-scsi
I got this during boot. I booted the same kernel several times, and only
saw it once. The kernel was 2.6.17-mm5 .
Daniel
=========================
[ BUG: held lock freed! ]
-------------------------
swapper/1 is freeing memory f73a8580-f73a867f, with a lock still held there!
2 locks held by swapper/1:
#0: (&shost->scan_mutex){--..}, at: [<c0419098>] mutex_lock+0x8/0x10
#1: (&eq->sysfs_lock){--..}, at: [<c0419098>] mutex_lock+0x8/0x10
stack backtrace:
[<c010546b>] show_trace+0x1b/0x20
[<c0105494>] dump_stack+0x24/0x30
[<c013c234>] debug_check_no_locks_freed+0x154/0x190
[<c016be44>] kfree+0x54/0xb0
[<c022c0f3>] cfq_exit_queue+0xe3/0x100
[<c021f6ea>] elevator_exit+0x2a/0x50
[<c022180b>] blk_cleanup_queue+0x3b/0x50
[<c02c7ff1>] scsi_free_queue+0x11/0x20
[<c02cd5ff>] scsi_device_dev_release_usercontext+0xff/0x1a0
[<c0130975>] execute_in_process_context+0x25/0x60
[<c02cc433>] scsi_device_dev_release+0x23/0x30
[<c0298bdd>] device_release+0x1d/0x80
[<c0230c6c>] kobject_cleanup+0x4c/0x90
[<c0230cc4>] kobject_release+0x14/0x20
[<c02312ea>] kref_put+0x3a/0xb0
[<c0230451>] kobject_put+0x21/0x30
[<c0298fca>] put_device+0x1a/0x20
[<c02cae17>] scsi_probe_and_add_lun+0x637/0x9a0
[<c02cb75f>] __scsi_scan_target+0xef/0x600
[<c02cbce8>] scsi_scan_channel+0x78/0x90
[<c02cbd67>] scsi_scan_host_selected+0x67/0xe0
[<c02cbe12>] scsi_scan_host+0x32/0x40
[<c02d2d84>] sym2_probe+0x9d4/0xa20
[<c023c871>] pci_device_probe+0x61/0x80
[<c029b4be>] driver_probe_device+0x4e/0xe0
[<c029b653>] __driver_attach+0x73/0x80
[<c029ada7>] bus_for_each_dev+0x57/0x80
[<c029b337>] driver_attach+0x27/0x30
[<c029a916>] bus_add_driver+0x86/0x180
[<c029b91d>] driver_register+0xad/0xf0
[<c023c3a5>] __pci_register_driver+0x65/0x90
[<c05693dc>] sym2_init+0x6c/0x120
[<c01003e0>] init+0xf0/0x320
[<c01008e5>] kernel_thread_helper+0x5/0x10
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [BUG] scsi/io-elevator held lock freed. 2006-07-04 14:54 [BUG] scsi/io-elevator held lock freed Daniel Walker @ 2006-07-04 15:13 ` Arjan van de Ven 2006-07-04 15:15 ` Ingo Molnar 2006-07-04 15:24 ` Daniel Walker 0 siblings, 2 replies; 4+ messages in thread From: Arjan van de Ven @ 2006-07-04 15:13 UTC (permalink / raw) To: Daniel Walker; +Cc: mingo, linux-kernel, linux-scsi On Tue, 2006-07-04 at 07:54 -0700, Daniel Walker wrote: > I got this during boot. I booted the same kernel several times, and only > saw it once. The kernel was 2.6.17-mm5 . > > Daniel > > > ========================= > [ BUG: held lock freed! ] > ------------------------- > swapper/1 is freeing memory f73a8580-f73a867f, with a lock still held there! > 2 locks held by swapper/1: > #0: (&shost->scan_mutex){--..}, at: [<c0419098>] mutex_lock+0x8/0x10 > #1: (&eq->sysfs_lock){--..}, at: [<c0419098>] mutex_lock+0x8/0x10 blargh.. it'd be more useful if lockdep actually printed which lock it is that it thinks is about to get freed..... this patch ought to make it do that; could you at least add this to your kernel? Ingo, is this the right approach? --- kernel/lockdep.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) Index: linux-2.6.17-mm6/kernel/lockdep.c =================================================================== --- linux-2.6.17-mm6.orig/kernel/lockdep.c +++ linux-2.6.17-mm6/kernel/lockdep.c @@ -2571,7 +2571,7 @@ static inline int in_range(const void *s static void print_freed_lock_bug(struct task_struct *curr, const void *mem_from, - const void *mem_to) + const void *mem_to, struct held_lock *hlock) { if (!debug_locks_off()) return; @@ -2583,6 +2583,7 @@ print_freed_lock_bug(struct task_struct printk( "-------------------------\n"); printk("%s/%d is freeing memory %p-%p, with a lock still held there!\n", curr->comm, curr->pid, mem_from, mem_to-1); + print_lock(hlock); lockdep_print_held_locks(curr); printk("\nstack backtrace:\n"); @@ -2616,7 +2617,7 @@ void debug_check_no_locks_freed(const vo !in_range(mem_from, lock_to, mem_to)) continue; - print_freed_lock_bug(curr, mem_from, mem_to); + print_freed_lock_bug(curr, mem_from, mem_to, hlock); break; } local_irq_restore(flags); ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [BUG] scsi/io-elevator held lock freed. 2006-07-04 15:13 ` Arjan van de Ven @ 2006-07-04 15:15 ` Ingo Molnar 2006-07-04 15:24 ` Daniel Walker 1 sibling, 0 replies; 4+ messages in thread From: Ingo Molnar @ 2006-07-04 15:15 UTC (permalink / raw) To: Arjan van de Ven; +Cc: Daniel Walker, linux-kernel, linux-scsi * Arjan van de Ven <arjan@infradead.org> wrote: > On Tue, 2006-07-04 at 07:54 -0700, Daniel Walker wrote: > > I got this during boot. I booted the same kernel several times, and only > > saw it once. The kernel was 2.6.17-mm5 . > > > > Daniel > > > > > > ========================= > > [ BUG: held lock freed! ] > > ------------------------- > > swapper/1 is freeing memory f73a8580-f73a867f, with a lock still held there! > > 2 locks held by swapper/1: > > #0: (&shost->scan_mutex){--..}, at: [<c0419098>] mutex_lock+0x8/0x10 > > #1: (&eq->sysfs_lock){--..}, at: [<c0419098>] mutex_lock+0x8/0x10 > > blargh.. it'd be more useful if lockdep actually printed which lock it > is that it thinks is about to get freed..... i think it's eq->sysfs_lock that is being freed here. > this patch ought to make it do that; could you at least add this to > your kernel? > > Ingo, is this the right approach? yeah, that's OK. Ingo ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [BUG] scsi/io-elevator held lock freed. 2006-07-04 15:13 ` Arjan van de Ven 2006-07-04 15:15 ` Ingo Molnar @ 2006-07-04 15:24 ` Daniel Walker 1 sibling, 0 replies; 4+ messages in thread From: Daniel Walker @ 2006-07-04 15:24 UTC (permalink / raw) To: Arjan van de Ven; +Cc: mingo, linux-kernel, linux-scsi On Tue, 2006-07-04 at 17:13 +0200, Arjan van de Ven wrote: > > blargh.. it'd be more useful if lockdep actually printed which lock it > is that it thinks is about to get freed..... I was thinking exactly the same thing .. > this patch ought to make it do that; could you at least add this to your > kernel? I'll add the patch, but I doubt I'll see it again .. Daniel ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2006-07-04 15:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2006-07-04 14:54 [BUG] scsi/io-elevator held lock freed Daniel Walker 2006-07-04 15:13 ` Arjan van de Ven 2006-07-04 15:15 ` Ingo Molnar 2006-07-04 15:24 ` Daniel Walker
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox