circular locking warning during suspend

Daniel Vetter daniel at ffwll.ch
Thu Jan 24 11:58:32 PST 2013


On Thu, Jan 24, 2013 at 6:34 PM, Johannes Berg
<johannes at sipsolutions.net> wrote:
> Hi,
>
> I didn't find this reported, but maybe it has been, I didn't search for
> too long. I'm using 3.8.0-rc4 (plus wireless bits), and lockdep is
> unhappy. Note that I am booting with "no_console_suspend".

Patches for the know issues around consolo_lock vs fbdev_notifier are in -mm:

  http://ozlabs.org/~akpm/mmots/broken-out/fb-rework-locking-to-fix-lock-ordering-on-takeover.patch
  http://ozlabs.org/~akpm/mmots/broken-out/fb-yet-another-band-aid-
for-fixing-lockdep-mess.patch

Unfortunately the patches seem to be stuck there for now despite quite
a few reports about this (including seemingly relevant background
noise about hangs in distro bugzillas).
-Daniel

>
> [   73.320586] ======================================================
> [   73.320587] [ INFO: possible circular locking dependency detected ]
> [   73.320592] 3.8.0-rc4-wl-67484-g04fa847 #106 Tainted: G        W
> [   73.320594] -------------------------------------------------------
> [   73.320597] kworker/u:9/2574 is trying to acquire lock:
> [   73.320614]  ((fb_notifier_list).rwsem){.+.+.+}, at: [<ffffffff8106f94a>] __blocking_notifier_call_chain+0x5a/0xd0
> [   73.320616]
> [   73.320616] but task is already holding lock:
> [   73.320627]  (console_lock){+.+.+.}, at: [<ffffffff81323c80>] i915_drm_freeze+0x90/0xe0
> [   73.320628]
> [   73.320628] which lock already depends on the new lock.
> [   73.320628]
> [   73.320629]
> [   73.320629] the existing dependency chain (in reverse order) is:
> [   73.320635]
> [   73.320635] -> #1 (console_lock){+.+.+.}:
> [   73.320642]        [<ffffffff810a13e6>] lock_acquire+0x96/0x1e0
> [   73.320647]        [<ffffffff8103bda7>] console_lock+0x77/0x80
> [   73.320654]        [<ffffffff812e2fda>] register_con_driver+0x3a/0x150
> [   73.320660]        [<ffffffff812e4b4f>] take_over_console+0x2f/0x70
> [   73.320666]        [<ffffffff81287d53>] fbcon_takeover+0x63/0xc0
> [   73.320671]        [<ffffffff8128baa5>] fbcon_event_notify+0x615/0x720
> [   73.320677]        [<ffffffff814b56ed>] notifier_call_chain+0x5d/0x110
> [   73.320683]        [<ffffffff8106f964>] __blocking_notifier_call_chain+0x74/0xd0
> [   73.320689]        [<ffffffff8106f9d6>] blocking_notifier_call_chain+0x16/0x20
> [   73.320695]        [<ffffffff8127ce6b>] fb_notifier_call_chain+0x1b/0x20
> [   73.320700]        [<ffffffff8127e625>] register_framebuffer+0x1c5/0x300
> [   73.320707]        [<ffffffff813021bc>] drm_fb_helper_single_fb_probe+0x1fc/0x330
> [   73.320712]        [<ffffffff813024d2>] drm_fb_helper_initial_config+0x1e2/0x250
> [   73.320718]        [<ffffffff81374cea>] intel_fbdev_init+0x8a/0xc0
> [   73.320724]        [<ffffffff81329527>] i915_driver_load+0xbc7/0xe00
> [   73.320730]        [<ffffffff81311bbe>] drm_get_pci_dev+0x18e/0x2d0
> [   73.320735]        [<ffffffff8132407b>] i915_pci_probe+0x3b/0x90
> [   73.320741]        [<ffffffff8126f036>] pci_device_probe+0xa6/0xf0
> [   73.320747]        [<ffffffff8138765c>] driver_probe_device+0x7c/0x240
> [   73.320752]        [<ffffffff813878bc>] __driver_attach+0x9c/0xa0
> [   73.320757]        [<ffffffff813857d6>] bus_for_each_dev+0x56/0x90
> [   73.320762]        [<ffffffff8138711e>] driver_attach+0x1e/0x20
> [   73.320767]        [<ffffffff81386cd8>] bus_add_driver+0x1a8/0x270
> [   73.320772]        [<ffffffff81387fa8>] driver_register+0x78/0x160
> [   73.320777]        [<ffffffff8126de65>] __pci_register_driver+0x65/0x70
> [   73.320782]        [<ffffffff81311e17>] drm_pci_init+0x117/0x130
> [   73.320789]        [<ffffffff81c81871>] i915_init+0x66/0x68
> [   73.320796]        [<ffffffff810002f2>] do_one_initcall+0x122/0x170
> [   73.320801]        [<ffffffff8149af8c>] kernel_init+0x13c/0x2b0
> [   73.320807]        [<ffffffff814b9d5c>] ret_from_fork+0x7c/0xb0
> [   73.320813]
> [   73.320813] -> #0 ((fb_notifier_list).rwsem){.+.+.+}:
> [   73.320818]        [<ffffffff810a0c1e>] __lock_acquire+0x1aee/0x1be0
> [   73.320823]        [<ffffffff810a13e6>] lock_acquire+0x96/0x1e0
> [   73.320829]        [<ffffffff814af21e>] down_read+0x4e/0x98
> [   73.320835]        [<ffffffff8106f94a>] __blocking_notifier_call_chain+0x5a/0xd0
> [   73.320841]        [<ffffffff8106f9d6>] blocking_notifier_call_chain+0x16/0x20
> [   73.320846]        [<ffffffff8127ce6b>] fb_notifier_call_chain+0x1b/0x20
> [   73.320851]        [<ffffffff8127d5de>] fb_set_suspend+0x4e/0x60
> [   73.320856]        [<ffffffff81374e65>] intel_fbdev_set_suspend+0x25/0x30
> [   73.320862]        [<ffffffff81323c8d>] i915_drm_freeze+0x9d/0xe0
> [   73.320867]        [<ffffffff813242ea>] i915_pm_suspend+0x4a/0xa0
> [   73.320872]        [<ffffffff8126e2b4>] pci_pm_suspend+0x74/0x140
> [   73.320878]        [<ffffffff8138f12c>] dpm_run_callback.isra.3+0x3c/0x80
> [   73.320883]        [<ffffffff8138f255>] __device_suspend+0xe5/0x200
> [   73.320888]        [<ffffffff8138fa1f>] async_suspend+0x1f/0xa0
> [   73.320892]        [<ffffffff81070762>] async_run_entry_fn+0x92/0x1c0
> [   73.320898]        [<ffffffff81060198>] process_one_work+0x208/0x750
> [   73.320903]        [<ffffffff81060ad0>] worker_thread+0x160/0x450
> [   73.320909]        [<ffffffff810676b2>] kthread+0xf2/0x100
> [   73.320915]        [<ffffffff814b9d5c>] ret_from_fork+0x7c/0xb0
> [   73.320917]
> [   73.320917] other info that might help us debug this:
> [   73.320917]
> [   73.320918]  Possible unsafe locking scenario:
> [   73.320918]
> [   73.320919]        CPU0                    CPU1
> [   73.320921]        ----                    ----
> [   73.320924]   lock(console_lock);
> [   73.320927]                                lock((fb_notifier_list).rwsem);
> [   73.320931]                                lock(console_lock);
> [   73.320934]   lock((fb_notifier_list).rwsem);
> [   73.320935]
> [   73.320935]  *** DEADLOCK ***
> [   73.320935]
> [   73.320937] 4 locks held by kworker/u:9/2574:
> [   73.320947]  #0:  (events_unbound){.+.+.+}, at: [<ffffffff81060127>] process_one_work+0x197/0x750
> [   73.320955]  #1:  ((&entry->work)){+.+.+.}, at: [<ffffffff81060127>] process_one_work+0x197/0x750
> [   73.320964]  #2:  (&__lockdep_no_validate__){......}, at: [<ffffffff8138f228>] __device_suspend+0xb8/0x200
> [   73.320974]  #3:  (console_lock){+.+.+.}, at: [<ffffffff81323c80>] i915_drm_freeze+0x90/0xe0
> [   73.320975]
> [   73.320975] stack backtrace:
> [   73.320979] Pid: 2574, comm: kworker/u:9 Tainted: G        W    3.8.0-rc4-wl-67484-g04fa847 #106
> [   73.320981] Call Trace:
> [   73.320990]  [<ffffffff814a8c8c>] print_circular_bug+0x1fc/0x20e
> [   73.320996]  [<ffffffff810a0c1e>] __lock_acquire+0x1aee/0x1be0
> [   73.321016]  [<ffffffff810a13e6>] lock_acquire+0x96/0x1e0
> [   73.321029]  [<ffffffff814af21e>] down_read+0x4e/0x98
> [   73.321041]  [<ffffffff8106f94a>] __blocking_notifier_call_chain+0x5a/0xd0
> [   73.321047]  [<ffffffff8106f9d6>] blocking_notifier_call_chain+0x16/0x20
> [   73.321053]  [<ffffffff8127ce6b>] fb_notifier_call_chain+0x1b/0x20
> [   73.321058]  [<ffffffff8127d5de>] fb_set_suspend+0x4e/0x60
> [   73.321063]  [<ffffffff81374e65>] intel_fbdev_set_suspend+0x25/0x30
> [   73.321069]  [<ffffffff81323c8d>] i915_drm_freeze+0x9d/0xe0
> [   73.321075]  [<ffffffff813242ea>] i915_pm_suspend+0x4a/0xa0
> [   73.321080]  [<ffffffff8126e2b4>] pci_pm_suspend+0x74/0x140
> [   73.321091]  [<ffffffff8138f12c>] dpm_run_callback.isra.3+0x3c/0x80
> [   73.321096]  [<ffffffff8138f255>] __device_suspend+0xe5/0x200
> [   73.321102]  [<ffffffff8138fa1f>] async_suspend+0x1f/0xa0
> [   73.321107]  [<ffffffff81070762>] async_run_entry_fn+0x92/0x1c0
> [   73.321113]  [<ffffffff81060198>] process_one_work+0x208/0x750
> [   73.321142]  [<ffffffff81060ad0>] worker_thread+0x160/0x450
> [   73.321153]  [<ffffffff810676b2>] kthread+0xf2/0x100
> [   73.321173]  [<ffffffff814b9d5c>] ret_from_fork+0x7c/0xb0
>
> johannes
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list