igt@kms_big_fb@linear-16bpp-rotate-180 - dmesg-warn - WARNING: possible circular locking dependency detected, is trying to acquire lock at: rcu_barrier, task is already holding lock at: drm_modeset_lock
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15797/shard-tglb3/igt@kms_big_fb@linear-16bpp-rotate-180.html
<4> [776.869765] ======================================================
<4> [776.869766] WARNING: possible circular locking dependency detected
<4> [776.869767] 5.5.0-rc2-CI-Patchwork_15797+ #1 Tainted: G U
<4> [776.869768] ------------------------------------------------------
<4> [776.869769] kms_big_fb/2506 is trying to acquire lock:
<4> [776.869770] ffffffff826484d8 (rcu_state.barrier_mutex){+.+.}, at: rcu_barrier+0x23/0x190
<4> [776.869775]
but task is already holding lock:
<4> [776.869775] ffff888488201080 (crtc_ww_class_mutex){+.+.}, at: drm_modeset_lock+0x104/0x120
<4> [776.869780]
which lock already depends on the new lock.
<4> [776.869780]
the existing dependency chain (in reverse order) is:
<4> [776.869781]
-> #6 (crtc_ww_class_mutex){+.+.}:
<4> [776.869786] __ww_mutex_lock.constprop.15+0xc3/0x1090
<4> [776.869787] ww_mutex_lock+0x39/0x70
<4> [776.869788] drm_modeset_lock+0x6c/0x120
<4> [776.869790] drm_mode_config_init+0x2c9/0x900
<4> [776.869840] intel_modeset_init+0x7f/0x1c80 [i915]
<4> [776.869869] i915_driver_probe+0xaf1/0x15f0 [i915]
<4> [776.869887] i915_pci_probe+0x43/0x1c0 [i915]
<4> [776.869890] pci_device_probe+0x9e/0x120
<4> [776.869891] really_probe+0xea/0x420
<4> [776.869892] driver_probe_device+0x10b/0x120
<4> [776.869894] device_driver_attach+0x4a/0x50
<4> [776.869895] __driver_attach+0x97/0x130
<4> [776.869895] bus_for_each_dev+0x74/0xc0
<4> [776.869896] bus_add_driver+0x142/0x220
<4> [776.869898] driver_register+0x56/0xf0
<4> [776.869899] 0xffffffffa055c06c
<4> [776.869900] do_one_initcall+0x58/0x300
<4> [776.869902] do_init_module+0x56/0x1f2
<4> [776.869904] load_module+0x243e/0x29f0
<4> [776.869905] __do_sys_finit_module+0xe9/0x110
<4> [776.869906] do_syscall_64+0x4f/0x220
<4> [776.869907] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [776.869907]
-> #5 (crtc_ww_class_acquire){+.+.}:
<4> [776.869909] drm_modeset_acquire_init+0xc4/0xf0
<4> [776.869944] glk_force_audio_cdclk+0x25/0x120 [i915]
<4> [776.869977] i915_audio_component_get_power+0x94/0x100 [i915]
<4> [776.869980] snd_hdac_display_power+0x7d/0x120 [snd_hda_core]
<4> [776.869982] azx_probe_work+0x88/0x7e0 [snd_hda_intel]
<4> [776.869984] process_one_work+0x26a/0x620
<4> [776.869985] worker_thread+0x37/0x380
<4> [776.869985] kthread+0x119/0x130
<4> [776.869986] ret_from_fork+0x24/0x50
<4> [776.869987]
-> #4 (&bus->lock){+.+.}:
<4> [776.869989] __mutex_lock+0x9a/0x9c0
<4> [776.869991] snd_hdac_display_power+0x2d/0x120 [snd_hda_core]
<4> [776.869992] __azx_runtime_resume+0x1a/0xe0 [snd_hda_intel]
<4> [776.869994] azx_runtime_resume+0x4b/0x130 [snd_hda_intel]
<4> [776.869995] pci_pm_runtime_resume+0x6c/0x90
<4> [776.869996] __rpm_callback+0xb1/0x110
<4> [776.869997] rpm_callback+0x1a/0x70
<4> [776.869998] rpm_resume+0x50e/0x790
<4> [776.869999] pm_runtime_forbid+0x39/0x50
<4> [776.870001] control_store+0x77/0x80
<4> [776.870003] kernfs_fop_write+0x112/0x1b0
<4> [776.870005] vfs_write+0xb9/0x1d0
<4> [776.870006] ksys_write+0x9f/0xe0
<4> [776.870007] do_syscall_64+0x4f/0x220
<4> [776.870008] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [776.870008]
-> #3 (kn->count#9){++++}:
<4> [776.870010] __kernfs_remove+0x260/0x2d0
<4> [776.870011] kernfs_remove_by_name_ns+0x3b/0x80
<4> [776.870012] sysfs_unmerge_group+0x38/0x50
<4> [776.870013] dpm_sysfs_remove+0x32/0x60
<4> [776.870014] device_del+0x84/0x400
<4> [776.870015] device_unregister+0x11/0x60
<4> [776.870017] mce_cpu_pre_down+0xfd/0x130
<4> [776.870018] cpuhp_invoke_callback+0x9b/0x9d0
<4> [776.870019] cpuhp_thread_fun+0x1c8/0x220
<4> [776.870020] smpboot_thread_fn+0x1d3/0x280
<4> [776.870021] kthread+0x119/0x130
<4> [776.870022] ret_from_fork+0x24/0x50
<4> [776.870022]
-> #2 (cpuhp_state-down){+.+.}:
<4> [776.870024] cpuhp_kick_ap_work+0x48/0x290
<4> [776.870025] _cpu_down+0x13c/0x1c0
<4> [776.870025] do_cpu_down+0x29/0x50
<4> [776.870026] device_offline+0x6a/0xb0
<4> [776.870027] online_store+0x45/0x90
<4> [776.870028] kernfs_fop_write+0x112/0x1b0
<4> [776.870029] vfs_write+0xb9/0x1d0
<4> [776.870030] ksys_write+0x9f/0xe0
<4> [776.870031] do_syscall_64+0x4f/0x220
<4> [776.870032] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [776.870032]
-> #1 (cpu_hotplug_lock.rw_sem){++++}:
<4> [776.870034] cpus_read_lock+0x34/0xd0
<4> [776.870035] rcu_barrier+0xaa/0x190
<4> [776.870036] kernel_init+0x21/0x100
<4> [776.870036] ret_from_fork+0x24/0x50
<4> [776.870037]
-> #0 (rcu_state.barrier_mutex){+.+.}:
<4> [776.870039] __lock_acquire+0x1328/0x15d0
<4> [776.870040] lock_acquire+0xa7/0x1c0
<4> [776.870041] __mutex_lock+0x9a/0x9c0
<4> [776.870042] rcu_barrier+0x23/0x190
<4> [776.870073] i915_gem_object_unbind+0x277/0x430 [i915]
<4> [776.870101] i915_gem_object_pin_to_display_plane+0x4f/0x120 [i915]
<4> [776.870134] intel_pin_and_fence_fb_obj+0x90/0x1a0 [i915]
<4> [776.870164] intel_plane_pin_fb+0x3f/0xd0 [i915]
<4> [776.870195] intel_prepare_plane_fb+0x12a/0x590 [i915]
<4> [776.870196] drm_atomic_helper_prepare_planes+0x85/0x110
<4> [776.870227] intel_atomic_commit+0xe3/0x3e0 [i915]
<4> [776.870228] drm_mode_atomic_ioctl+0x860/0x980
<4> [776.870229] drm_ioctl_kernel+0xa7/0xf0
<4> [776.870230] drm_ioctl+0x2e1/0x390
<4> [776.870232] do_vfs_ioctl+0x9c/0x730
<4> [776.870232] ksys_ioctl+0x35/0x60
<4> [776.870233] __x64_sys_ioctl+0x11/0x20
<4> [776.870234] do_syscall_64+0x4f/0x220
<4> [776.870235] entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [776.870236]
other info that might help us debug this:
<4> [776.870236] Chain exists of:
rcu_state.barrier_mutex --> crtc_ww_class_acquire --> crtc_ww_class_mutex
<4> [776.870238] Possible unsafe locking scenario:
<4> [776.870238] CPU0 CPU1
<4> [776.870239] ---- ----
<4> [776.870239] lock(crtc_ww_class_mutex);
<4> [776.870240] lock(crtc_ww_class_acquire);
<4> [776.870241] lock(crtc_ww_class_mutex);
<4> [776.870241] lock(rcu_state.barrier_mutex);
<4> [776.870242]
*** DEADLOCK ***
````