[git pull] drm for v4.8

Jani Nikula jani.nikula at linux.intel.com
Tue Aug 2 12:27:04 UTC 2016


On Tue, 02 Aug 2016, Jiri Kosina <jikos at kernel.org> wrote:
> On Mon, 1 Aug 2016, Linus Torvalds wrote:
>
>> > This is the main drm pull request for 4.8, I'm down with a cold at the moment
>> > so hopefully this isn't in too bad a state, I finished pulling stuff last
>> > week mostly (nouveau fixes just went in today), so only this message should
>> > be influenced by illness. Apologies to anyone who's major feature I missed :-)
>> >
>> > i915:
>> >         BXT support enabled by default
>> >         GVT-g infrastructure
>> >         GuC command submission and fixes
>> >         BXT workarounds
>> >         SKL/BKL workarounds
>> >         Demidlayering device registration
>> >         Thundering herd fixes
>> >         Missing pci ids
>> >         Atomic updates
>> 
>> Hmm. I did the merge and pushed it out, but testing it on my laptop
>> shows some very annoying flickering problem.
>
> In addition to that, what I see with current git (HEAD == 731c7d3a205, 
> i.e. the drm merge) is lockdep report during bootup about AB-BA between 
> mode_config.mutex and fb_notifier_list rwsem; will probably not have time 
> to look into it more (look at the code and / or bisect) until tomorrow, so 
> sending out early as a heads-up.
>
> Also, trying to suspend the machine to disk hangs, with the "suspend" LED 
> constantly blinking, LCD being blank, but the machine never actually 
> powering off. Not sure whether it might not be the very deadlock actually 
> triggering for real.

There was [1] before my vacation to fix this, but it doesn't seem to
have gone anywhere since. And it doesn't refer what caused the lockdep
splat to begin with.

BR,
Jani.

[1] http://patchwork.freedesktop.org/patch/msgid/1467286256-8870-1-git-send-email-chris@chris-wilson.co.uk

>
>
> [    8.731638] fbcon: inteldrmfb (fb0) is primary device
>
> [    8.732611] ======================================================
> [    8.732612] [ INFO: possible circular locking dependency detected ]
> [    8.732614] 4.7.0-10753-g731c7d3 #459 Not tainted
> [    8.732614] -------------------------------------------------------
> [    8.732615] kworker/u8:3/60 is trying to acquire lock:
> [    8.732650]  (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm]
> [    8.732651] 
> but task is already holding lock:
> [    8.732657]  ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff8d08fe2a>] __blocking_notifier_call_chain+0x3a/0x70
> [    8.732658] 
> which lock already depends on the new lock.
>
> [    8.732658] 
> the existing dependency chain (in reverse order) is:
> [    8.732661] 
> -> #1 ((fb_notifier_list).rwsem){++++.+}:
> [    8.732665]        [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0
> [    8.732669]        [<ffffffff8d6a0b25>] down_write+0x55/0xc0
> [    8.732671]        [<ffffffff8d08ffb1>] blocking_notifier_chain_register+0x21/0xb0
> [    8.732674]        [<ffffffff8d3d1318>] fb_register_client+0x18/0x20
> [    8.732676]        [<ffffffff8d3d0b88>] backlight_device_register+0x138/0x250
> [    8.732746]        [<ffffffffc0568912>] intel_backlight_device_register+0xa2/0x160 [i915]
> [    8.732791]        [<ffffffffc053735e>] intel_connector_register+0xe/0x10 [i915]
> [    8.732809]        [<ffffffffc02ae389>] drm_connector_register+0x49/0x80 [drm]
> [    8.732827]        [<ffffffffc02b28a0>] drm_modeset_register_all+0x1d0/0x260 [drm]
> [    8.732843]        [<ffffffffc02a9c22>] drm_dev_register+0xc2/0xd0 [drm]
> [    8.732878]        [<ffffffffc04a6ce5>] i915_driver_load+0x745/0x13e0 [i915]
> [    8.732914]        [<ffffffffc04b173f>] i915_pci_probe+0x4f/0x70 [i915]
> [    8.732917]        [<ffffffff8d3af7d5>] local_pci_probe+0x45/0xa0
> [    8.732920]        [<ffffffff8d3b0bf1>] pci_device_probe+0xe1/0x130
> [    8.732923]        [<ffffffff8d489be8>] driver_probe_device+0x1a8/0x460
> [    8.732925]        [<ffffffff8d489f6d>] __driver_attach+0xcd/0xf0
> [    8.732927]        [<ffffffff8d4878a4>] bus_for_each_dev+0x64/0xa0
> [    8.732929]        [<ffffffff8d4894ee>] driver_attach+0x1e/0x20
> [    8.732931]        [<ffffffff8d488f83>] bus_add_driver+0x1d3/0x290
> [    8.732933]        [<ffffffff8d48ad30>] driver_register+0x60/0xe0
> [    8.732935]        [<ffffffff8d3af100>] __pci_register_driver+0x60/0x70
> [    8.732972]        [<ffffffffc05ec05d>] i915_init+0x5d/0x64 [i915]
> [    8.732975]        [<ffffffff8d00041d>] do_one_initcall+0x3d/0x160
> [    8.732979]        [<ffffffff8d182bfd>] do_init_module+0x60/0x1dc
> [    8.732982]        [<ffffffff8d107a5e>] load_module+0x142e/0x1bf0
> [    8.732984]        [<ffffffff8d108449>] SYSC_finit_module+0xa9/0xd0
> [    8.732986]        [<ffffffff8d10848e>] SyS_finit_module+0xe/0x10
> [    8.732989]        [<ffffffff8d6a38e9>] entry_SYSCALL_64_fastpath+0x1c/0xac
> [    8.732992] 
> -> #0 (&dev->mode_config.mutex){+.+.+.}:
> [    8.732995]        [<ffffffff8d0c1e7c>] __lock_acquire+0x16cc/0x1700
> [    8.732997]        [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0
> [    8.732999]        [<ffffffff8d69f2d1>] mutex_lock_nested+0x71/0x390
> [    8.733019]        [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm]
> [    8.733034]        [<ffffffffc047640b>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2b/0x80 [drm_kms_helper]
> [    8.733043]        [<ffffffffc047648c>] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper]
> [    8.733088]        [<ffffffffc05476aa>] intel_fbdev_set_par+0x1a/0x60 [i915]
> [    8.733091]        [<ffffffff8d3ce2b8>] fbcon_init+0x4d8/0x550
> [    8.733094]        [<ffffffff8d450526>] visual_init+0xd6/0x130
> [    8.733097]        [<ffffffff8d452ab6>] do_bind_con_driver+0x146/0x310
> [    8.733099]        [<ffffffff8d452f66>] do_take_over_console+0x106/0x180
> [    8.733101]        [<ffffffff8d3c9777>] do_fbcon_takeover+0x57/0xb0
> [    8.733104]        [<ffffffff8d3cedd6>] fbcon_event_notify+0x726/0x870
> [    8.733106]        [<ffffffff8d08fbfe>] notifier_call_chain+0x4e/0xa0
> [    8.733109]        [<ffffffff8d08fe43>] __blocking_notifier_call_chain+0x53/0x70
> [    8.733111]        [<ffffffff8d08fe76>] blocking_notifier_call_chain+0x16/0x20
> [    8.733113]        [<ffffffff8d3d135b>] fb_notifier_call_chain+0x1b/0x20
> [    8.733116]        [<ffffffff8d3d3379>] register_framebuffer+0x239/0x320
> [    8.733126]        [<ffffffffc047670a>] drm_fb_helper_initial_config+0x25a/0x3a3 [drm_kms_helper]
> [    8.733169]        [<ffffffffc0548938>] intel_fbdev_initial_config+0x18/0x30 [i915]
> [    8.733172]        [<ffffffff8d091aaa>] async_run_entry_fn+0x4a/0x140
> [    8.733174]        [<ffffffff8d08771e>] process_one_work+0x1de/0x670
> [    8.733176]        [<ffffffff8d087cd5>] worker_thread+0x125/0x4a0
> [    8.733178]        [<ffffffff8d08e7e2>] kthread+0xf2/0x110
> [    8.733181]        [<ffffffff8d6a3b2f>] ret_from_fork+0x1f/0x40
> [    8.733181] 
> other info that might help us debug this:
>
> [    8.733182]  Possible unsafe locking scenario:
>
> [    8.733183]        CPU0                    CPU1
> [    8.733183]        ----                    ----
> [    8.733185]   lock((fb_notifier_list).rwsem);
> [    8.733186]                                lock(&dev->mode_config.mutex);
> [    8.733187]                                lock((fb_notifier_list).rwsem);
> [    8.733188]   lock(&dev->mode_config.mutex);
> [    8.733189] 
>  *** DEADLOCK ***
>
> [    8.733190] 6 locks held by kworker/u8:3/60:
> [    8.733194]  #0:  ("events_unbound"){.+.+.+}, at: [<ffffffff8d08769f>] process_one_work+0x15f/0x670
> [    8.733198]  #1:  ((&entry->work)){+.+.+.}, at: [<ffffffff8d08769f>] process_one_work+0x15f/0x670
> [    8.733201]  #2:  (registration_lock){+.+.+.}, at: [<ffffffff8d3d3167>] register_framebuffer+0x27/0x320
> [    8.733205]  #3:  (console_lock){+.+.+.}, at: [<ffffffff8d3d3396>] register_framebuffer+0x256/0x320
> [    8.733208]  #4:  (&fb_info->lock){+.+.+.}, at: [<ffffffff8d3d178d>] lock_fb_info+0x1d/0x40
> [    8.733212]  #5:  ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff8d08fe2a>] __blocking_notifier_call_chain+0x3a/0x70
> [    8.733212] 
> stack backtrace:
> [    8.733214] CPU: 1 PID: 60 Comm: kworker/u8:3 Not tainted 4.7.0-10753-g731c7d3 #459
> [    8.733215] Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008
> [    8.733218] Workqueue: events_unbound async_run_entry_fn
> [    8.733221]  0000000000000000 ffff95f0b77537d8 ffffffff8d36c09e ffffffff8e822d00
> [    8.733224]  ffffffff8e822d00 ffff95f0b7753818 ffffffff8d18205b ffff95f0b7753850
> [    8.733226]  ffff95f0b774d718 0000000000000005 0000000000000006 ffff95f0b774cd40
> [    8.733227] Call Trace:
> [    8.733230]  [<ffffffff8d36c09e>] dump_stack+0x67/0x99
> [    8.733232]  [<ffffffff8d18205b>] print_circular_bug+0x200/0x20e
> [    8.733235]  [<ffffffff8d0c1e7c>] __lock_acquire+0x16cc/0x1700
> [    8.733238]  [<ffffffff8d0a17c8>] ? sched_clock_local+0x18/0x80
> [    8.733240]  [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0
> [    8.733260]  [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm]
> [    8.733262]  [<ffffffff8d69f2d1>] mutex_lock_nested+0x71/0x390
> [    8.733281]  [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm]
> [    8.733301]  [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm]
> [    8.733304]  [<ffffffff8d1ec87c>] ? kmem_cache_alloc_trace+0x25c/0x320
> [    8.733322]  [<ffffffffc02bfce5>] ? drm_modeset_lock_all+0x25/0x120 [drm]
> [    8.733341]  [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm]
> [    8.733351]  [<ffffffffc047640b>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2b/0x80 [drm_kms_helper]
> [    8.733360]  [<ffffffffc047648c>] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper]
> [    8.733403]  [<ffffffffc05476aa>] intel_fbdev_set_par+0x1a/0x60 [i915]
> [    8.733406]  [<ffffffff8d3ce2b8>] fbcon_init+0x4d8/0x550
> [    8.733408]  [<ffffffff8d450526>] visual_init+0xd6/0x130
> [    8.733410]  [<ffffffff8d452ab6>] do_bind_con_driver+0x146/0x310
> [    8.733413]  [<ffffffff8d452f66>] do_take_over_console+0x106/0x180
> [    8.733415]  [<ffffffff8d3c9777>] do_fbcon_takeover+0x57/0xb0
> [    8.733417]  [<ffffffff8d3cedd6>] fbcon_event_notify+0x726/0x870
> [    8.733419]  [<ffffffff8d08fbfe>] notifier_call_chain+0x4e/0xa0
> [    8.733422]  [<ffffffff8d08fe43>] __blocking_notifier_call_chain+0x53/0x70
> [    8.733424]  [<ffffffff8d08fe76>] blocking_notifier_call_chain+0x16/0x20
> [    8.733426]  [<ffffffff8d3d135b>] fb_notifier_call_chain+0x1b/0x20
> [    8.733427]  [<ffffffff8d3d3379>] register_framebuffer+0x239/0x320
> [    8.733430]  [<ffffffff8d4817c0>] ? vga_switcheroo_client_fb_set+0x60/0x70
> [    8.733440]  [<ffffffffc047670a>] drm_fb_helper_initial_config+0x25a/0x3a3 [drm_kms_helper]
> [    8.733483]  [<ffffffffc0548938>] intel_fbdev_initial_config+0x18/0x30 [i915]
> [    8.733484]  [<ffffffff8d091aaa>] async_run_entry_fn+0x4a/0x140
> [    8.733486]  [<ffffffff8d08771e>] process_one_work+0x1de/0x670
> [    8.733488]  [<ffffffff8d08769f>] ? process_one_work+0x15f/0x670
> [    8.733490]  [<ffffffff8d087cd5>] worker_thread+0x125/0x4a0
> [    8.733492]  [<ffffffff8d087bb0>] ? process_one_work+0x670/0x670
> [    8.733494]  [<ffffffff8d08e7e2>] kthread+0xf2/0x110
> [    8.733497]  [<ffffffff8d6a3b2f>] ret_from_fork+0x1f/0x40
> [    8.733499]  [<ffffffff8d08e6f0>] ? kthread_create_on_node+0x220/0x220

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the dri-devel mailing list