igt@gem_exec_parallel@* - dmesg-warn - WARNING: possible circular locking dependency detected, acquire lock at: i915_request_create, ut task is already holding lock at: gen6_ppgtt_pin
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7492/shard-hsw1/igt@gem_exec_parallel@rcs0-fds.html
<4> [1285.329963] ======================================================
<4> [1285.329965] WARNING: possible circular locking dependency detected
<4> [1285.329967] 5.4.0-rc8-CI-CI_DRM_7492+ #1 Tainted: G U
<4> [1285.329969] ------------------------------------------------------
<4> [1285.329971] gem_exec_parall/5950 is trying to acquire lock:
<4> [1285.329973] ffff8884080f6270 (&kernel#2){+.+.}, at: i915_request_create+0x16/0x1c0 [i915]
<4> [1285.330040]
but task is already holding lock:
<4> [1285.330042] ffff88838884d550 (&ppgtt->pin_mutex){+.+.}, at: gen6_ppgtt_pin+0x4d/0x110 [i915]
<4> [1285.330078]
which lock already depends on the new lock.
<4> [1285.330082]
the existing dependency chain (in reverse order) is:
<4> [1285.330086]
-> #1 (&ppgtt->pin_mutex){+.+.}:
<4> [1285.330093] __mutex_lock+0x9a/0x9d0
<4> [1285.330128] gen6_ppgtt_pin+0x4d/0x110 [i915]
<4> [1285.330156] emit_ppgtt_update+0x1dc/0x370 [i915]
<4> [1285.330196] context_barrier_task+0x176/0x310 [i915]
<4> [1285.330228] ctx_setparam+0x400/0xb10 [i915]
<4> [1285.330259] i915_gem_context_setparam_ioctl+0xc8/0x160 [i915]
<4> [1285.330263] drm_ioctl_kernel+0xa7/0xf0
<4> [1285.330265] drm_ioctl+0x2e1/0x390
<4> [1285.330269] do_vfs_ioctl+0xa0/0x6f0
<4> [1285.330271] ksys_ioctl+0x35/0x60
<4> [1285.330274] __x64_sys_ioctl+0x11/0x20
<4> [1285.330278] do_syscall_64+0x4f/0x210
<4> [1285.330281] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [1285.330284]
-> #0 (&kernel#2){+.+.}:
<4> [1285.330289] __lock_acquire+0x1328/0x15d0
<4> [1285.330292] lock_acquire+0xa7/0x1c0
<4> [1285.330295] __mutex_lock+0x9a/0x9d0
<4> [1285.330338] i915_request_create+0x16/0x1c0 [i915]
<4> [1285.330373] intel_engine_flush_barriers+0x4c/0x100 [i915]
<4> [1285.330417] i915_ggtt_pin+0x7d/0x130 [i915]
<4> [1285.330458] gen6_ppgtt_pin+0x9c/0x110 [i915]
<4> [1285.330494] ring_context_pin+0x2e/0xc0 [i915]
<4> [1285.330529] __intel_context_do_pin+0x6b/0x190 [i915]
<4> [1285.330571] i915_gem_do_execbuffer+0x180c/0x26b0 [i915]
<4> [1285.330612] i915_gem_execbuffer2_ioctl+0x11b/0x460 [i915]
<4> [1285.330616] drm_ioctl_kernel+0xa7/0xf0
<4> [1285.330619] drm_ioctl+0x2e1/0x390
<4> [1285.330622] do_vfs_ioctl+0xa0/0x6f0
<4> [1285.330625] ksys_ioctl+0x35/0x60
<4> [1285.330628] __x64_sys_ioctl+0x11/0x20
<4> [1285.330631] do_syscall_64+0x4f/0x210
<4> [1285.330634] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [1285.330636]
other info that might help us debug this:
<4> [1285.330640] Possible unsafe locking scenario:
<4> [1285.330643] CPU0 CPU1
<4> [1285.330645] ---- ----
<4> [1285.330648] lock(&ppgtt->pin_mutex);
<4> [1285.330650] lock(&kernel#2);
<4> [1285.330653] lock(&ppgtt->pin_mutex);
<4> [1285.330656] lock(&kernel#2);
<4> [1285.330659]
*** DEADLOCK ***