[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120706114032.GA28951@localhost>
Date: Fri, 6 Jul 2012 19:40:32 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Theodore Ts'o <tytso@....edu>
Cc: Linux Kernel Developers List <linux-kernel@...r.kernel.org>,
torvalds@...ux-foundation.org, w@....eu, ewust@...ch.edu,
zakir@...ch.edu, greg@...ah.com, mpm@...enic.com,
nadiah@...ucsd.edu, jhalderm@...ch.edu, tglx@...utronix.de,
davem@...emloft.net
Subject: Re: [PATCH 00/10] /dev/random fixups
Hi Theodore,
I got this lockdep warning in linux-next. I've not bisected it..
however seems most related to this patchset.
[ 3.004015] =================================
[ 3.004161] [ INFO: inconsistent lock state ]
[ 3.004161] 3.5.0-rc5+ #3 Not tainted
[ 3.004161] ---------------------------------
[ 3.004161] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
[ 3.004161] swapper/0/1 [HC1[1]:SC0[0]:HE0:SE1] takes:
[ 3.004161] (&input_pool.lock){?.+...}, at: [<ffffffff8138ba4a>] mix_pool_bytes.constprop.17+0x28/0x52
[ 3.004161] {HARDIRQ-ON-W} state was registered at:
[ 3.004161] [<ffffffff81080e75>] __lock_acquire+0x594/0x7cb
[ 3.004161] [<ffffffff810815b6>] lock_acquire+0xdb/0x127
[ 3.004161] [<ffffffff817b6405>] _raw_spin_lock+0x45/0x78
[ 3.004161] [<ffffffff8138ac27>] account+0x2c/0xdd
[ 3.004161] [<ffffffff8138bf7d>] extract_entropy+0x9a/0x10a
[ 3.004161] [<ffffffff8138be73>] xfer_secondary_pool+0x8a/0xfa
[ 3.004161] [<ffffffff8138bf68>] extract_entropy+0x85/0x10a
[ 3.004161] [<ffffffff8138c0fa>] get_random_bytes+0x20/0x22
[ 3.004161] [<ffffffff8168ffec>] neigh_hash_alloc+0xaf/0xc9
[ 3.004161] [<ffffffff816910be>] neigh_table_init+0x8c/0x264
[ 3.004161] [<ffffffff81eb8fd7>] arp_init+0x10/0x4d
[ 3.004161] [<ffffffff81eb94c3>] inet_init+0x1a4/0x2b0
[ 3.004161] [<ffffffff810001ff>] do_one_initcall+0x7f/0x134
[ 3.004161] [<ffffffff81e7fc1b>] kernel_init+0x13c/0x1c0
[ 3.004161] [<ffffffff817bece4>] kernel_thread_helper+0x4/0x10
[ 3.004161] irq event stamp: 766846
[ 3.004161] hardirqs last enabled at (766845): [<ffffffff817b6dfa>] _raw_spin_unlock_irqrestore+0x3f/0x55
[ 3.004161] hardirqs last disabled at (766846): [<ffffffff817b7167>] common_interrupt+0x67/0x6c
[ 3.004161] softirqs last enabled at (766808): [<ffffffff81037b3e>] __do_softirq+0x1b1/0x205
[ 3.004161] softirqs last disabled at (766793): [<ffffffff817beddc>] call_softirq+0x1c/0x30
[ 3.004161]
[ 3.004161] other info that might help us debug this:
[ 3.004161] Possible unsafe locking scenario:
[ 3.004161]
[ 3.004161] CPU0
[ 3.004161] ----
[ 3.004161] lock(&input_pool.lock);
[ 3.004161] <Interrupt>
[ 3.004161] lock(&input_pool.lock);
[ 3.004161]
[ 3.004161] *** DEADLOCK ***
[ 3.004161]
[ 3.004161] 4 locks held by swapper/0/1:
[ 3.004161] #0: (&__lockdep_no_validate__){......}, at: [<ffffffff813b6759>] __driver_attach+0x3f/0x85
[ 3.004161] #1: (&__lockdep_no_validate__){......}, at: [<ffffffff813b6767>] __driver_attach+0x4d/0x85
[ 3.004161] #2: (&bdev->bd_mutex){+.+.+.}, at: [<ffffffff8113cbb6>] __blkdev_get+0x60/0x3bf
[ 3.004161] #3: (&(&q->__queue_lock)->rlock){-.....}, at: [<ffffffff813c3f0e>] blk_done+0x35/0xf6
[ 3.004161]
[ 3.004161] stack backtrace:
[ 3.004161] Pid: 1, comm: swapper/0 Not tainted 3.5.0-rc5+ #3
[ 3.004161] Call Trace:
[ 3.004161] <IRQ> [<ffffffff817a41b3>] print_usage_bug.part.32+0x272/0x281
[ 3.004161] [<ffffffff8100d9c5>] ? save_stack_trace+0x2c/0x49
[ 3.004161] [<ffffffff8107eeab>] ? check_usage_backwards+0xed/0xed
[ 3.004161] [<ffffffff81080743>] mark_lock+0x364/0x502
[ 3.004161] [<ffffffff81080e07>] __lock_acquire+0x526/0x7cb
[ 3.004161] [<ffffffff810d1a03>] ? mempool_free_slab+0x17/0x19
[ 3.004161] [<ffffffff81106700>] ? kmem_cache_free+0xce/0x133
[ 3.004161] [<ffffffff810815b6>] lock_acquire+0xdb/0x127
[ 3.004161] [<ffffffff8138ba4a>] ? mix_pool_bytes.constprop.17+0x28/0x52
[ 3.004161] [<ffffffff8113aecd>] ? bio_free+0x3d/0x56
[ 3.004161] [<ffffffff817b6579>] _raw_spin_lock_irqsave+0x51/0x8b
[ 3.004161] [<ffffffff8138ba4a>] ? mix_pool_bytes.constprop.17+0x28/0x52
[ 3.004161] [<ffffffff81139ff9>] ? bio_endio+0x2d/0x2f
[ 3.004161] [<ffffffff8138ba4a>] mix_pool_bytes.constprop.17+0x28/0x52
[ 3.004161] [<ffffffff812cce67>] ? blk_update_request+0x3d8/0x469
[ 3.004161] [<ffffffff8138bcfc>] add_timer_randomness+0x56/0x10d
[ 3.004161] [<ffffffff8138c731>] add_disk_randomness+0x2e/0x30
[ 3.004161] [<ffffffff812ccf5b>] blk_update_bidi_request+0x63/0x6d
[ 3.004161] [<ffffffff812ce5af>] __blk_end_bidi_request+0x17/0x31
[ 3.004161] [<ffffffff812ce5eb>] __blk_end_request_all+0x22/0x2a
[ 3.004161] [<ffffffff813c3f71>] blk_done+0x98/0xf6
[ 3.004161] [<ffffffff81368f75>] vring_interrupt+0x2b/0x38
[ 3.004161] [<ffffffff8109b59d>] handle_irq_event_percpu+0x7f/0x1fd
[ 3.004161] [<ffffffff8109b75c>] handle_irq_event+0x41/0x61
[ 3.004161] [<ffffffff8109de18>] handle_edge_irq+0xc9/0xf0
[ 3.004161] [<ffffffff81003e0d>] handle_irq+0x125/0x132
[ 3.004161] [<ffffffff81037d69>] ? irq_enter+0x19/0x77
[ 3.004161] [<ffffffff817bf30d>] do_IRQ+0x4d/0xb4
[ 3.004161] [<ffffffff817b716c>] common_interrupt+0x6c/0x6c
[ 3.004161] <EOI> [<ffffffff81022a61>] ? read_hpet+0x16/0x1a
[ 3.004161] [<ffffffff810759f5>] ktime_get_ts+0x73/0xbb
[ 3.004161] [<ffffffff810cfaf2>] ? __lock_page+0x68/0x68
[ 3.004161] [<ffffffff810a59b8>] __delayacct_blkio_start+0x22/0x24
[ 3.004161] [<ffffffff817b58b1>] io_schedule+0x52/0xcd
[ 3.004161] [<ffffffff810cfb00>] sleep_on_page+0xe/0x12
[ 3.004161] [<ffffffff817b3499>] __wait_on_bit_lock+0x46/0x8f
[ 3.004161] [<ffffffff8113bd6a>] ? blkdev_write_begin+0x25/0x25
[ 3.004161] [<ffffffff810cfaf0>] __lock_page+0x66/0x68
[ 3.004161] [<ffffffff810521d9>] ? autoremove_wake_function+0x3d/0x3d
[ 3.004161] [<ffffffff810d00f7>] do_read_cache_page+0xd2/0x15d
[ 3.004161] [<ffffffff812da1b1>] ? efi_partition+0xeb/0x82a
[ 3.004161] [<ffffffff810d01c6>] read_cache_page_async+0x1c/0x1e
[ 3.004161] [<ffffffff810d01d6>] read_cache_page+0xe/0x18
[ 3.004161] [<ffffffff812d7274>] read_dev_sector+0x30/0x8a
[ 3.004161] [<ffffffff812d9e42>] read_lba+0xa4/0x10c
[ 3.004161] [<ffffffff812da1d8>] efi_partition+0x112/0x82a
[ 3.004161] [<ffffffff812e995b>] ? string.isra.3+0x3d/0xa4
[ 3.004161] [<ffffffff812ea4c7>] ? vsnprintf+0x77/0x433
[ 3.004161] [<ffffffff812ea90f>] ? snprintf+0x34/0x36
[ 3.004161] [<ffffffff812d8259>] check_partition+0xf5/0x1b4
[ 3.004161] [<ffffffff812d7eec>] rescan_partitions+0xae/0x29f
[ 3.004161] [<ffffffff817b6da7>] ? _raw_spin_unlock+0x29/0x3d
[ 3.004161] [<ffffffff8113ccd9>] __blkdev_get+0x183/0x3bf
[ 3.004161] [<ffffffff811248df>] ? unlock_new_inode+0x61/0x66
[ 3.004161] [<ffffffff8113d0a4>] blkdev_get+0x18f/0x30a
[ 3.004161] [<ffffffff811248df>] ? unlock_new_inode+0x61/0x66
[ 3.004161] [<ffffffff8113bc63>] ? bdget+0x121/0x130
[ 3.004161] [<ffffffff813b29e8>] ? put_device+0x17/0x19
[ 3.004161] [<ffffffff812d5b8d>] add_disk+0x2bc/0x42d
[ 3.004161] [<ffffffff8113c2ca>] ? revalidate_disk+0x68/0x74
[ 3.004161] [<ffffffff81369c14>] ? vp_get+0x4b/0x5f
[ 3.004161] [<ffffffff8176cee2>] virtblk_probe+0x467/0x56b
[ 3.004161] [<ffffffff813b671a>] ? driver_probe_device+0x1c4/0x1c4
[ 3.004161] [<ffffffff81368b15>] virtio_dev_probe+0xb7/0xdb
[ 3.004161] [<ffffffff813b65fc>] driver_probe_device+0xa6/0x1c4
[ 3.004161] [<ffffffff813b677c>] __driver_attach+0x62/0x85
[ 3.004161] [<ffffffff81063491>] ? local_clock+0xf/0x3c
[ 3.004161] [<ffffffff813b4bf3>] bus_for_each_dev+0x57/0x89
[ 3.004161] [<ffffffff813b616d>] driver_attach+0x1e/0x20
[ 3.004161] [<ffffffff813b5d32>] bus_add_driver+0x100/0x23d
[ 3.004161] [<ffffffff81ea9fcc>] ? loop_init+0x133/0x133
[ 3.004161] [<ffffffff81ea9fcc>] ? loop_init+0x133/0x133
[ 3.004161] [<ffffffff813b6d3b>] driver_register+0x93/0x10e
[ 3.004161] [<ffffffff81ea9fcc>] ? loop_init+0x133/0x133
[ 3.004161] [<ffffffff81368ce8>] register_virtio_driver+0x28/0x2c
[ 3.004161] [<ffffffff81eaa020>] init+0x54/0x8b
[ 3.004161] [<ffffffff81ea9e99>] ? max_loop_setup+0x1a/0x1a
[ 3.004161] [<ffffffff810001ff>] do_one_initcall+0x7f/0x134
[ 3.004161] [<ffffffff81e7fc1b>] kernel_init+0x13c/0x1c0
[ 3.004161] [<ffffffff81e7f530>] ? do_early_param+0x8d/0x8d
[ 3.004161] [<ffffffff817bece4>] kernel_thread_helper+0x4/0x10
[ 3.004161] [<ffffffff8105c08a>] ? finish_task_switch+0x42/0xd3
[ 3.004161] [<ffffffff817b7219>] ? retint_restore_args+0xe/0xe
[ 3.004161] [<ffffffff81e7fadf>] ? start_kernel+0x35c/0x35c
[ 3.004161] [<ffffffff817bece0>] ? gs_change+0xb/0xb
[ 3.243752] vda: unknown partition table
Thanks,
Fengguang
View attachment "dmesg-kvm-waimea-20296-2012-07-06-19-19-48" of type "text/plain" (56297 bytes)
View attachment "config-3.5.0-rc5+" of type "text/plain" (72769 bytes)
Powered by blists - more mailing lists