Re: 2.6.19-rc3-git7: scsi_device_unbusy: inconsistent lock state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jens Axboe wrote:
Can you do:

$ gdb vmlinux
  l *cfq_set_request+0x351

assuming you built with DEBUG_INFO enabled.

Here it is again, from kernel with FRAME_POINTERS and DEBUG_INFO enabled:

=================================
[ INFO: inconsistent lock state ]
2.6.19-rc3-git7-ml #6
---------------------------------
inconsistent {in-softirq-W} -> {softirq-on-W} usage.
startproc/3964 [HC0[0]:SC0[0]:HE1:SE1] takes:
(&q->__queue_lock){-+..}, at: [<c021780e>] cfq_set_request+0x33e/0x3a0
{in-softirq-W} state was registered at:
 [<c0137439>] mark_lock+0x79/0x600
 [<c013880d>] __lock_acquire+0x64d/0xc20
 [<c013914d>] lock_acquire+0x5d/0x80
 [<c035ea8b>] _spin_lock+0x2b/0x40
 [<c029ee87>] scsi_device_unbusy+0x67/0xa0
 [<c029992c>] scsi_finish_command+0x1c/0xa0
 [<c029f04f>] scsi_softirq_done+0xcf/0xf0
 [<c020fc8b>] blk_done_softirq+0x6b/0x80
 [<c0122732>] __do_softirq+0x92/0x110
 [<c0122815>] do_softirq+0x65/0x70
 [<c0122c85>] ksoftirqd+0x85/0xd0
 [<c0130d48>] kthread+0xe8/0xf0
 [<c0103c4b>] kernel_thread_helper+0x7/0x1c
 [<ffffffff>] 0xffffffff
irq event stamp: 1927
hardirqs last  enabled at (1927): [<c0162a15>] kmem_cache_alloc+0x75/0xb0
hardirqs last disabled at (1926): [<c01629c2>] kmem_cache_alloc+0x22/0xb0
softirqs last  enabled at (0): [<c011b653>] copy_process+0x353/0x1290
softirqs last disabled at (0): [<00000000>] 0x0

other info that might help us debug this:
no locks held by startproc/3964.

stack backtrace:
[<c0104088>] dump_trace+0x1c8/0x200
[<c01040da>] show_trace_log_lvl+0x1a/0x30
[<c0104832>] show_trace+0x12/0x20
[<c0104999>] dump_stack+0x19/0x20
[<c0137053>] print_usage_bug+0x243/0x250
[<c0137962>] mark_lock+0x5a2/0x600
[<c0138832>] __lock_acquire+0x672/0xc20
[<c013914d>] lock_acquire+0x5d/0x80
[<c035ea8b>] _spin_lock+0x2b/0x40
[<c021780e>] cfq_set_request+0x33e/0x3a0
[<c020af3f>] elv_set_request+0x1f/0x50
[<c020e40d>] get_request+0x21d/0x250
[<c020ec4c>] get_request_wait+0x1c/0x100
[<c020eebd>] __make_request+0x5d/0x330
[<c020db44>] generic_make_request+0x174/0x230
[<c020fed0>] submit_bio+0x60/0x110
[<c018dcfc>] mpage_bio_submit+0x1c/0x30
[<c018f363>] mpage_readpages+0x103/0x140
[<c01aab49>] reiserfs_readpages+0x19/0x20
[<c014d511>] __do_page_cache_readahead+0x161/0x220
[<c014d632>] blockable_page_cache_readahead+0x62/0xc0
[<c014d86f>] page_cache_readahead+0x11f/0x1d0
[<c0147511>] do_generic_mapping_read+0x501/0x540
[<c01495a3>] generic_file_aio_read+0xf3/0x240
[<c0166020>] do_sync_read+0xd0/0x110
[<c01668e4>] vfs_read+0x94/0x160
[<c0166e2d>] sys_read+0x3d/0x70
[<c0102f4d>] sysenter_past_esp+0x56/0x8d
[<b7f84410>] 0xb7f84410
=======================

(gdb) l *cfq_set_request+0x33e
0xc021780e is in cfq_set_request (block/cfq-iosched.c:1224).
1219            if (unlikely(!cfqd))
1220                    return;
1221
1222            spin_lock(cfqd->queue->queue_lock);
1223
1224            cfqq = cic->cfqq[ASYNC];
1225            if (cfqq) {
1226                    struct cfq_queue *new_cfqq;
1227                    new_cfqq = cfq_get_queue(cfqd, CFQ_KEY_ASYNC, cic->ioc->task,
1228                                             GFP_ATOMIC);


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux