Project 'drm/intel' was moved to 'drm/i915/kernel'. Please update any links and bookmarks that may still have the old path.
igt@kms_* - dmesg-warn - WARNING: possible circular locking dependency detected, trying to acquire lock at: rcu_barrier, but task is already holding lock at: intel_pin_and_fence_fb_obj
<4> [974.432312] ======================================================
<4> [974.432323] WARNING: possible circular locking dependency detected
<4> [974.432337] 5.4.0-rc8-CI-CI_DRM_7487+ #1 Tainted: G U
<4> [974.432347] ------------------------------------------------------
<4> [974.432359] kms_frontbuffer/1775 is trying to acquire lock:
<4> [974.432370] ffffffff82248218 (rcu_state.barrier_mutex){+.+.}, at: rcu_barrier+0x23/0x190
<4> [974.432405]
but task is already holding lock:
<4> [974.432414] ffff88816dbdbe90 (reservation_ww_class_mutex){+.+.}, at: intel_pin_and_fence_fb_obj+0x7a/0x200 [i915]
<4> [974.432880]
which lock already depends on the new lock.
<4> [974.432890]
the existing dependency chain (in reverse order) is:
<4> [974.432900]
-> #6 (reservation_ww_class_mutex){+.+.}:
<4> [974.432937] __ww_mutex_lock.constprop.15+0xc3/0x1090
<4> [974.432956] ww_mutex_lock+0x39/0x70
<4> [974.432975] dma_resv_lockdep+0x10e/0x1f7
<4> [974.432991] do_one_initcall+0x58/0x2ff
<4> [974.433009] kernel_init_freeable+0x137/0x1c7
<4> [974.433026] kernel_init+0x5/0x100
<4> [974.433041] ret_from_fork+0x3a/0x50
<4> [974.433051]
-> #5 (reservation_ww_class_acquire){+.+.}:
<4> [974.433075] dma_resv_lockdep+0xec/0x1f7
<4> [974.433089] do_one_initcall+0x58/0x2ff
<4> [974.433105] kernel_init_freeable+0x137/0x1c7
<4> [974.433121] kernel_init+0x5/0x100
<4> [974.433135] ret_from_fork+0x3a/0x50
<4> [974.433144]
-> #4 (&mm->mmap_sem#2){++++}:
<4> [974.433176] __might_fault+0x63/0x90
<4> [974.433194] _copy_to_user+0x1e/0x80
<4> [974.433213] perf_read+0x200/0x2b0
<4> [974.433229] vfs_read+0x96/0x160
<4> [974.433243] ksys_read+0x9f/0xe0
<4> [974.433258] do_syscall_64+0x4f/0x210
<4> [974.433274] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [974.433282]
-> #3 (&cpuctx_mutex){+.+.}:
<4> [974.433309] __mutex_lock+0x9a/0x9d0
<4> [974.433321] perf_event_init_cpu+0xa4/0x140
<4> [974.433340] perf_event_init+0x19d/0x1cd
<4> [974.433356] start_kernel+0x372/0x4f4
<4> [974.433371] secondary_startup_64+0xa4/0xb0
<4> [974.433380]
-> #2 (pmus_lock){+.+.}:
<4> [974.433405] __mutex_lock+0x9a/0x9d0
<4> [974.433417] perf_event_init_cpu+0x6b/0x140
<4> [974.433438] cpuhp_invoke_callback+0x9b/0x9d0
<4> [974.433454] _cpu_up+0xa2/0x140
<4> [974.433472] do_cpu_up+0x61/0xa0
<4> [974.433486] smp_init+0x57/0x96
<4> [974.433501] kernel_init_freeable+0xac/0x1c7
<4> [974.433517] kernel_init+0x5/0x100
<4> [974.433531] ret_from_fork+0x3a/0x50
<4> [974.433539]
-> #1 (cpu_hotplug_lock.rw_sem){++++}:
<4> [974.433567] cpus_read_lock+0x34/0xd0
<4> [974.433582] rcu_barrier+0xaa/0x190
<4> [974.433598] kernel_init+0x21/0x100
<4> [974.433612] ret_from_fork+0x3a/0x50
<4> [974.433621]
-> #0 (rcu_state.barrier_mutex){+.+.}:
<4> [974.433644] __lock_acquire+0x1328/0x15d0
<4> [974.433657] lock_acquire+0xa7/0x1c0
<4> [974.433674] __mutex_lock+0x9a/0x9d0
<4> [974.433689] rcu_barrier+0x23/0x190
<4> [974.434111] i915_gem_object_unbind+0x3a6/0x400 [i915]
<4> [974.434491] i915_gem_object_set_cache_level+0x32/0x90 [i915]
<4> [974.434866] i915_gem_object_pin_to_display_plane+0x5d/0x160 [i915]
<4> [974.435297] intel_pin_and_fence_fb_obj+0x9e/0x200 [i915]
<4> [974.435716] intel_plane_pin_fb+0x3f/0xd0 [i915]
<4> [974.436144] intel_prepare_plane_fb+0x130/0x520 [i915]
<4> [974.436169] drm_atomic_helper_prepare_planes+0x85/0x110
<4> [974.436592] intel_atomic_commit+0xc6/0x350 [i915]
<4> [974.436623] drm_atomic_helper_update_plane+0xed/0x110
<4> [974.436643] setplane_internal+0x97/0x190
<4> [974.436660] drm_mode_setplane+0xcd/0x190
<4> [974.436679] drm_ioctl_kernel+0xa7/0xf0
<4> [974.436696] drm_ioctl+0x2e1/0x390
<4> [974.436713] do_vfs_ioctl+0xa0/0x6f0
<4> [974.436731] ksys_ioctl+0x35/0x60
<4> [974.436757] __x64_sys_ioctl+0x11/0x20
<4> [974.436771] do_syscall_64+0x4f/0x210
<4> [974.436787] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [974.436795]
other info that might help us debug this:
<4> [974.436805] Chain exists of:
rcu_state.barrier_mutex --> reservation_ww_class_acquire --> reservation_ww_class_mutex
<4> [974.436828] Possible unsafe locking scenario:
<4> [974.436838] CPU0 CPU1
<4> [974.436846] ---- ----
<4> [974.436855] lock(reservation_ww_class_mutex);
<4> [974.436868] lock(reservation_ww_class_acquire);
<4> [974.436881] lock(reservation_ww_class_mutex);
<4> [974.436894] lock(rcu_state.barrier_mutex);
<4> [974.436906]
*** DEADLOCK ***