Greetings, I got the below dmesg and the first bad commit is commit 1ca7d67cf5d5a2aef26a8d9afd789006fa098347 Author: John Stultz Date: Mon Oct 7 15:51:59 2013 -0700 seqcount: Add lockdep functionality to seqcount/seqlock structures Currently seqlocks and seqcounts don't support lockdep. After running across a seqcount related deadlock in the timekeeping code, I used a less-refined and more focused variant of this patch to narrow down the cause of the issue. This is a first-pass attempt to properly enable lockdep functionality on seqlocks and seqcounts. Since seqcounts are used in the vdso gettimeofday code, I've provided non-lockdep accessors for those needs. I've also handled one case where there were nested seqlock writers and there may be more edge cases. Comments and feedback would be appreciated! Signed-off-by: John Stultz Signed-off-by: Peter Zijlstra Cc: Eric Dumazet Cc: Li Zefan Cc: Mathieu Desnoyers Cc: Steven Rostedt Cc: "David S. Miller" Cc: netdev@vger.kernel.org Link: http://lkml.kernel.org/r/1381186321-4906-3-git-send-email-john.stultz@linaro.org Signed-off-by: Ingo Molnar +----------------------------------------+----+ | | | +----------------------------------------+----+ | has_kernel_error_warning | 19 | | INFO:trying_to_register_non-static_key | 19 | +----------------------------------------+----+ [ 4.124336] uli526x: ULi M5261/M5263 net driver, version 0.9.3 (2005-7-29) [ 4.125354] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI [ 4.126299] e1000: Copyright (c) 1999-2006 Intel Corporation. [ 4.127282] INFO: trying to register non-static key. [ 4.128027] the code is fine but needs lockdep annotation. [ 4.128027] turning off the locking correctness validator. [ 4.128027] CPU: 0 PID: 96 Comm: kworker/u4:1 Not tainted 3.12.0-next-20131108-10601-gbad570d #2 [ 4.128027] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 4.128027] Workqueue: events_unbound async_run_entry_fn [ 4.128027] 7908e744 00000000 78019968 79dc7cf2 7a80e0a8 780199a0 7908953e 7a1b7f4d [ 4.128027] 7a1b7fa7 7a1b7f7d 7f368608 00000000 00000011 44374011 0000a805 7f368110 [ 4.128027] 7f368110 85bf2a70 00000000 780199cc 7908a1c5 00000000 00000001 00000000 [ 4.128027] Call Trace: [ 4.128027] [<7908e744>] ? console_unlock+0x353/0x380 [ 4.128027] [<79dc7cf2>] dump_stack+0x48/0x60 [ 4.128027] [<7908953e>] __lock_acquire.isra.26+0x7e3/0xceb [ 4.128027] [<7908a1c5>] lock_acquire+0x71/0x9a [ 4.128027] [<794079aa>] ? blk_throtl_bio+0x1c3/0x485 [ 4.128027] [<7940658b>] throtl_update_dispatch_stats+0x7c/0x153 [ 4.128027] [<794079aa>] ? blk_throtl_bio+0x1c3/0x485 [ 4.128027] [<794079aa>] blk_throtl_bio+0x1c3/0x485 [ 4.128027] [<7907c7f9>] ? sched_clock_local+0x17/0x106 [ 4.128027] [<7907ca8b>] ? sched_clock_cpu+0x105/0x113 [ 4.128027] [<793f2fee>] generic_make_request_checks+0x3ca/0x3e1 [ 4.128027] [<7907ca8b>] ? sched_clock_cpu+0x105/0x113 [ 4.128027] [<793f4613>] generic_make_request+0xf/0xb0 [ 4.128027] [<793f4723>] submit_bio+0x6f/0xd8 [ 4.128027] [<79116695>] _submit_bh+0x228/0x245 [ 4.128027] [<791166bc>] submit_bh+0xa/0xc [ 4.128027] [<7911768e>] block_read_full_page+0x2a8/0x2c3 [ 4.128027] [<7911a555>] ? bio_dirty_fn+0x6f/0x6f [ 4.128027] [<790bed0c>] ? add_to_page_cache_locked+0xb4/0xe2 [ 4.128027] [<7911a7eb>] ? blkdev_write_begin+0x20/0x20 [ 4.128027] [<7911a7eb>] ? blkdev_write_begin+0x20/0x20 [ 4.128027] [<7911a7fa>] blkdev_readpage+0xf/0x11 [ 4.128027] [<790bf877>] do_read_cache_page+0x6e/0x11b [ 4.128027] [<790c0649>] read_cache_page_async+0x19/0x1e [ 4.128027] [<7911a7eb>] ? blkdev_write_begin+0x20/0x20 [ 4.128027] [<790c067a>] read_cache_page+0xb/0x12 [ 4.128027] [<7940170d>] read_dev_sector+0x26/0x61 [ 4.128027] [<7940215b>] read_lba+0xae/0xf9 [ 4.128027] [<790e60b6>] ? kmem_cache_alloc+0xf9/0x12b [ 4.128027] [<7940268b>] efi_partition+0x17a/0x9c0 [ 4.128027] [<790c4c4f>] ? __alloc_pages_nodemask+0xe3/0x61e [ 4.128027] [<79415849>] ? string.isra.4+0x29/0x93 [ 4.128027] [<79415849>] ? string.isra.4+0x29/0x93 [ 4.128027] [<794165e9>] ? vsnprintf+0x81/0x28b [ 4.128027] [<79416ab2>] ? snprintf+0x15/0x17 [ 4.128027] [<79401844>] check_partition+0xe4/0x178 [ 4.128027] [<79401844>] ? check_partition+0xe4/0x178 [ 4.128027] [<79401496>] rescan_partitions+0x89/0x267 [ 4.128027] [<7911a8df>] ? bdev_inode_switch_bdi+0xd2/0xe6 [ 4.128027] [<7911b696>] __blkdev_get+0x173/0x363 [ 4.128027] [<7911b8d1>] blkdev_get+0x4b/0x23d [ 4.128027] [<7911af8f>] ? bdget+0xf8/0x105 [ 4.128027] [<796bc6c5>] ? put_device+0xf/0x11 [ 4.128027] [<793ff4c9>] add_disk+0x26b/0x3b5 [ 4.128027] [<796c4599>] ? __pm_runtime_use_autosuspend+0x4a/0x4f [ 4.128027] [<797e4d73>] sd_probe_async+0x111/0x198 [ 4.128027] [<79075b0a>] async_run_entry_fn+0x59/0xff [ 4.128027] [<7906cb54>] process_one_work+0x1ef/0x349 [ 4.128027] [<7906cafb>] ? process_one_work+0x196/0x349 [ 4.128027] [<7906d0a5>] worker_thread+0x1a3/0x274 [ 4.128027] [<7906cf02>] ? rescuer_thread+0x233/0x233 [ 4.128027] [<79071767>] kthread+0xa5/0xaa [ 4.128027] [<79070000>] ? maybe_kfree_parameter+0xc/0x3d [ 4.128027] [<79ddb6bb>] ret_from_kernel_thread+0x1b/0x30 [ 4.128027] [<790716c2>] ? __kthread_parkme+0x50/0x50 [ 4.178057] sda: unknown partition table [ 4.182119] sd 0:0:0:0: [sda] Attached SCSI disk [ 4.516964] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56 git bisect start e1e958029781a5f22a47807f9648ab9d221746f4 v3.12 -- git bisect good 513e72b3ae0e7d35b09b72c360e548781b345fe7 # 19:09 20+ 0 Merge remote-tracking branch 'pm/linux-next' git bisect good a73f39d6bb13cd0eadf566e202dbfd114de2b9bc # 19:23 20+ 0 Merge remote-tracking branch 'virtio/virtio-next' git bisect good 8d31e8536540635a1d56c9cd4a30eefe7f236644 # 19:40 20+ 0 Merge remote-tracking branch 'spi/for-next' git bisect bad 47b8d9c8c38a956094e7f6b231371331dd2dd0d9 # 19:56 0- 4 Merge branch 'x86/hyperv' git bisect good 8a4d0b56b031455adcbe4a9383c3b497456fcfac # 20:20 20+ 0 Merge branch 'uprobes/core' of git://git.kernel.org/pub/scm/linux/kernel/git/oleg/misc into perf/core git bisect good c90423d1de12fbeaf0c898e1db0e962de347302b # 20:37 20+ 0 Merge branch 'sched/core' into core/locking, to prepare the kernel/locking/ file move git bisect bad 25c1bd1db04d58967bbd979bea71e82db2292407 # 20:53 0- 11 Merge branch 'timers/core' git bisect good 8a749de5e32d2b72def93f7bd7a2745580d75872 # 21:12 20+ 0 Merge branch 'fortglx/3.13/time' of git://git.linaro.org/people/jstultz/linux into timers/core git bisect bad 226e4c81385ac8d47962d5660c54ff9df629c15e # 21:30 0- 8 Merge branch 'irq/core' git bisect bad 5ac68e7c34a4797aa4ca9615e5a6603bda1abe9b # 21:46 0- 4 ipv6: Fix possible ipv6 seqlock deadlock git bisect good ed428bfc3caaa4b1e6cd15ea12c90c30291903f0 # 21:59 20+ 0 locking: Move the rwsem code to kernel/locking/ git bisect good 827da44c61419f29ae3be198c342e2147f1a10cb # 22:09 20+ 0 net: Explicitly initialize u64_stats_sync structures for lockdep git bisect bad db751fe3ea6880ff5ac5abe60cb7b80deb5a4140 # 22:26 0- 1 cpuset: Fix potential deadlock w/ set_mems_allowed git bisect bad 1ca7d67cf5d5a2aef26a8d9afd789006fa098347 # 22:31 0- 6 seqcount: Add lockdep functionality to seqcount/seqlock structures git bisect good 827da44c61419f29ae3be198c342e2147f1a10cb # 22:33 60+ 0 net: Explicitly initialize u64_stats_sync structures for lockdep git bisect bad bad570d77024cba808126d68a2072f6f8ce64c27 # 22:33 0- 19 Add linux-next specific files for 20131108 git bisect good 7b0833043b88a3188ffd2d6ea4b72bafb04ba4bd # 22:54 60+ 1 Revert "seqcount: Add lockdep functionality to seqcount/seqlock structures" git bisect good 6c86ae2928f9e4cbf0d5844f5fcfd549e3450b8c # 23:03 60+ 0 Merge tag 'ftrace-urgent-3.12-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace git bisect bad bad570d77024cba808126d68a2072f6f8ce64c27 # 23:03 0- 19 Add linux-next specific files for 20131108 Thanks, Fengguang