4.9-rc1 lockdep warning suggesting a deadlock between nouveau and i915 with prime video outputs active

Hans de Goede hdegoede at redhat.com
Wed Nov 9 17:02:40 UTC 2016


Hi,

I noticed this while testing the displayport output attached
to the nvidia GPU on a Thinkpad P50 while the intel GPU
was driving the LCD panel (and was the primary GPU according
to Xorg). This was while logging into gnome-3 with Xorg-1.19-rc2,
from gdm (also running on top of Xorg-1.19-rc2).

[   23.892394] ======================================================
[   23.892395] [ INFO: possible circular locking dependency detected ]
[   23.892397] 4.9.0-rc1+ #51 Not tainted
[   23.892398] -------------------------------------------------------
[   23.892399] Xorg/1252 is trying to acquire lock:
[   23.892400]  (
[   23.892401] reservation_ww_class_mutex
[   23.892402] ){+.+.+.}
[   23.892403] , at:
[   23.892429] [<ffffffffc042bac4>] i915_gem_do_execbuffer.isra.46+0x1654/0x1c10 [i915]
[   23.892430]
                but task is already holding lock:
[   23.892431]  (
[   23.892432] &dev->struct_mutex
[   23.892433] ){+.+.+.}
[   23.892433] , at:
[   23.892447] [<ffffffffc0436be3>] i915_mutex_lock_interruptible+0x23/0x40 [i915]
[   23.892448]
                which lock already depends on the new lock.

[   23.892450]
                the existing dependency chain (in reverse order) is:
[   23.892451]
                -> #1
[   23.892451]  (
[   23.892452] &dev->struct_mutex
[   23.892453] ){+.+.+.}
[   23.892453] :
[   23.892454]
[   23.892458] [<ffffffffaf1127e6>] lock_acquire+0xf6/0x1f0
[   23.892459]
[   23.892470] [<ffffffffc0228ba5>] drm_gem_object_unreference_unlocked+0x45/0xe0 [drm]
[   23.892471]
[   23.892502] [<ffffffffc06198d5>] validate_fini_no_ticket+0x85/0xf0 [nouveau]
[   23.892503]
[   23.892525] [<ffffffffc061abb2>] nouveau_gem_ioctl_pushbuf+0x312/0x10c0 [nouveau]
[   23.892526]
[   23.892533] [<ffffffffc0229f2a>] drm_ioctl+0x37a/0x4e0 [drm]
[   23.892534]
[   23.892556] [<ffffffffc0611994>] nouveau_drm_ioctl+0x74/0xc0 [nouveau]
[   23.892557]
[   23.892559] [<ffffffffaf2beab3>] do_vfs_ioctl+0xa3/0x6f0
[   23.892560]
[   23.892562] [<ffffffffaf2bf179>] SyS_ioctl+0x79/0x90
[   23.892562]
[   23.892565] [<ffffffffaf90a941>] entry_SYSCALL_64_fastpath+0x1f/0xc2
[   23.892566]
                -> #0
[   23.892567]  (
[   23.892567] reservation_ww_class_mutex
[   23.892568] ){+.+.+.}
[   23.892569] :
[   23.892569]
[   23.892571] [<ffffffffaf1121ee>] __lock_acquire+0x10fe/0x1290
[   23.892572]
[   23.892574] [<ffffffffaf1127e6>] lock_acquire+0xf6/0x1f0
[   23.892574]
[   23.892576] [<ffffffffaf905e96>] mutex_lock_nested+0x86/0x3f0
[   23.892577]
[   23.892592] [<ffffffffc042bac4>] i915_gem_do_execbuffer.isra.46+0x1654/0x1c10 [i915]
[   23.892592]
[   23.892605] [<ffffffffc042c4bf>] i915_gem_execbuffer2+0xcf/0x260 [i915]
[   23.892606]
[   23.892613] [<ffffffffc0229f2a>] drm_ioctl+0x37a/0x4e0 [drm]
[   23.892614]
[   23.892616] [<ffffffffaf2beab3>] do_vfs_ioctl+0xa3/0x6f0
[   23.892617]
[   23.892619] [<ffffffffaf2bf179>] SyS_ioctl+0x79/0x90
[   23.892619]
[   23.892621] [<ffffffffaf90a941>] entry_SYSCALL_64_fastpath+0x1f/0xc2
[   23.892622]
                other info that might help us debug this:

[   23.892624]  Possible unsafe locking scenario:

[   23.892626]        CPU0                    CPU1
[   23.892627]        ----                    ----
[   23.892628]   lock(
[   23.892629] &dev->struct_mutex
[   23.892630] );
[   23.892632]                                lock(
[   23.892633] reservation_ww_class_mutex
[   23.892634] );
[   23.892634]                                lock(
[   23.892635] &dev->struct_mutex
[   23.892636] );
[   23.892636]   lock(
[   23.892637] reservation_ww_class_mutex
[   23.892638] );
[   23.892639]
                 *** DEADLOCK ***

[   23.892641] 1 lock held by Xorg/1252:
[   23.892641]  #0:
[   23.892642]  (
[   23.892643] &dev->struct_mutex
[   23.892643] ){+.+.+.}
[   23.892644] , at:
[   23.892658] [<ffffffffc0436be3>] i915_mutex_lock_interruptible+0x23/0x40 [i915]
[   23.892659]
                stack backtrace:
[   23.892661] CPU: 0 PID: 1252 Comm: Xorg Not tainted 4.9.0-rc1+ #51
[   23.892662] Hardware name: LENOVO 20EQS3R300/20EQS3R300, BIOS N1EET57W (1.30 ) 08/03/2016
[   23.892663]  ffff9e02032c79d0 ffffffffaf46b523 ffffffffb0bd6d30 ffffffffb0bd6d30
[   23.892667]  ffff9e02032c7a10 ffffffffaf10f85e 00000000af1f8000 ffff9262af1f8ce0
[   23.892669]  ffff9262af1f8000 ffff9262af1f8ca8 0000000000000001 0000000000000000
[   23.892672] Call Trace:
[   23.892675]  [<ffffffffaf46b523>] dump_stack+0x86/0xc3
[   23.892677]  [<ffffffffaf10f85e>] print_circular_bug+0x1be/0x210
[   23.892679]  [<ffffffffaf1121ee>] __lock_acquire+0x10fe/0x1290
[   23.892681]  [<ffffffffaf626fe1>] ? reservation_object_get_fences_rcu+0x201/0x4d0
[   23.892683]  [<ffffffffaf1127e6>] lock_acquire+0xf6/0x1f0
[   23.892696]  [<ffffffffc042bac4>] ? i915_gem_do_execbuffer.isra.46+0x1654/0x1c10 [i915]
[   23.892698]  [<ffffffffaf905e96>] mutex_lock_nested+0x86/0x3f0
[   23.892711]  [<ffffffffc042bac4>] ? i915_gem_do_execbuffer.isra.46+0x1654/0x1c10 [i915]
[   23.892722]  [<ffffffffc042bac4>] ? i915_gem_do_execbuffer.isra.46+0x1654/0x1c10 [i915]
[   23.892734]  [<ffffffffc042a3b2>] ? i915_vma_move_to_active+0x152/0x210 [i915]
[   23.892745]  [<ffffffffc042bac4>] i915_gem_do_execbuffer.isra.46+0x1654/0x1c10 [i915]
[   23.892752]  [<ffffffffc0228b6a>] ? drm_gem_object_unreference_unlocked+0xa/0xe0 [drm]
[   23.892755]  [<ffffffffaf23b993>] ? __might_fault+0x43/0xa0
[   23.892767]  [<ffffffffc042c4bf>] i915_gem_execbuffer2+0xcf/0x260 [i915]
[   23.892774]  [<ffffffffc0229f2a>] drm_ioctl+0x37a/0x4e0 [drm]
[   23.892785]  [<ffffffffc042c3f0>] ? i915_gem_execbuffer+0x370/0x370 [i915]
[   23.892788]  [<ffffffffaf2beab3>] do_vfs_ioctl+0xa3/0x6f0
[   23.892790]  [<ffffffffaf2cc3f5>] ? __fget+0x5/0x200
[   23.892792]  [<ffffffffaf2bf179>] SyS_ioctl+0x79/0x90
[   23.892795]  [<ffffffffaf90a941>] entry_SYSCALL_64_fastpath+0x1f/0xc2


I'm attach the entire dmesg in case it is useful. Note I cannot reproduce this at
will I'm afraid.

Regards,

Hans
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dmesg.log
Type: text/x-log
Size: 76975 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20161109/f1bc6535/attachment-0001.bin>


More information about the dri-devel mailing list