mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2026-01-27 05:04:19 +00:00
Use __release_guc_id (lock held) rather than release_guc_id (acquires
lock), add lockdep annotations.
213.280129] i915: Running i915_perf_live_selftests/live_noa_gpr
[ 213.283459] ============================================
[ 213.283462] WARNING: possible recursive locking detected
{{[ 213.283466] 5.15.0-rc6+ #18 Tainted: G U W }}
[ 213.283470] --------------------------------------------
[ 213.283472] kworker/u24:0/8 is trying to acquire lock:
[ 213.283475] ffff8ffc4f6cc1e8 (&guc->submission_state.lock){....}-{2:2}, at: destroyed_worker_func+0x2df/0x350 [i915]
{{[ 213.283618] }}
{{ but task is already holding lock:}}
[ 213.283621] ffff8ffc4f6cc1e8 (&guc->submission_state.lock){....}-{2:2}, at: destroyed_worker_func+0x4f/0x350 [i915]
{{[ 213.283720] }}
{{ other info that might help us debug this:}}
[ 213.283724] Possible unsafe locking scenario:[ 213.283727] CPU0
[ 213.283728] ----
[ 213.283730] lock(&guc->submission_state.lock);
[ 213.283734] lock(&guc->submission_state.lock);
{{[ 213.283737] }}
{{ *** DEADLOCK ***}}[ 213.283740] May be due to missing lock nesting notation[ 213.283744] 3 locks held by kworker/u24:0/8:
[ 213.283747] #0: ffff8ffb80059d38 ((wq_completion)events_unbound){..}-{0:0}, at: process_one_work+0x1f3/0x550
[ 213.283757] #1: ffffb509000e3e78 ((work_completion)(&guc->submission_state.destroyed_worker)){..}-{0:0}, at: process_one_work+0x1f3/0x550
[ 213.283766] #2: ffff8ffc4f6cc1e8 (&guc->submission_state.lock){....}-{2:2}, at: destroyed_worker_func+0x4f/0x350 [i915]
{{[ 213.283860] }}
{{ stack backtrace:}}
[ 213.283863] CPU: 8 PID: 8 Comm: kworker/u24:0 Tainted: G U W 5.15.0-rc6+ #18
[ 213.283868] Hardware name: ASUS System Product Name/PRIME B560M-A AC, BIOS 0403 01/26/2021
[ 213.283873] Workqueue: events_unbound destroyed_worker_func [i915]
[ 213.283957] Call Trace:
[ 213.283960] dump_stack_lvl+0x57/0x72
[ 213.283966] __lock_acquire.cold+0x191/0x2d3
[ 213.283972] lock_acquire+0xb5/0x2b0
[ 213.283978] ? destroyed_worker_func+0x2df/0x350 [i915]
[ 213.284059] ? destroyed_worker_func+0x2d7/0x350 [i915]
[ 213.284139] ? lock_release+0xb9/0x280
[ 213.284143] _raw_spin_lock_irqsave+0x48/0x60
[ 213.284148] ? destroyed_worker_func+0x2df/0x350 [i915]
[ 213.284226] destroyed_worker_func+0x2df/0x350 [i915]
[ 213.284310] process_one_work+0x270/0x550
[ 213.284315] worker_thread+0x52/0x3b0
[ 213.284319] ? process_one_work+0x550/0x550
[ 213.284322] kthread+0x135/0x160
[ 213.284326] ? set_kthread_struct+0x40/0x40
[ 213.284331] ret_from_fork+0x1f/0x30
and a bit later in the trace:
{{ 227.499864] do_raw_spin_lock+0x94/0xa0}}
[ 227.499868] _raw_spin_lock_irqsave+0x50/0x60
[ 227.499871] ? guc_flush_destroyed_contexts+0x4f/0xf0 [i915]
[ 227.499995] guc_flush_destroyed_contexts+0x4f/0xf0 [i915]
[ 227.500104] intel_guc_submission_reset_prepare+0x99/0x4b0 [i915]
[ 227.500209] ? mark_held_locks+0x49/0x70
[ 227.500212] intel_uc_reset_prepare+0x46/0x50 [i915]
[ 227.500320] reset_prepare+0x78/0x90 [i915]
[ 227.500412] __intel_gt_set_wedged.part.0+0x13/0xe0 [i915]
[ 227.500485] intel_gt_set_wedged.part.0+0x54/0x100 [i915]
[ 227.500556] intel_gt_set_wedged_on_fini+0x1a/0x30 [i915]
[ 227.500622] intel_gt_driver_unregister+0x1e/0x60 [i915]
[ 227.500694] i915_driver_remove+0x4a/0xf0 [i915]
[ 227.500767] i915_pci_probe+0x84/0x170 [i915]
[ 227.500838] local_pci_probe+0x42/0x80
[ 227.500842] pci_device_probe+0xd9/0x190
[ 227.500844] really_probe+0x1f2/0x3f0
[ 227.500847] __driver_probe_device+0xfe/0x180
[ 227.500848] driver_probe_device+0x1e/0x90
[ 227.500850] __driver_attach+0xc4/0x1d0
[ 227.500851] ? __device_attach_driver+0xe0/0xe0
[ 227.500853] ? __device_attach_driver+0xe0/0xe0
[ 227.500854] bus_for_each_dev+0x64/0x90
[ 227.500856] bus_add_driver+0x12e/0x1f0
[ 227.500857] driver_register+0x8f/0xe0
[ 227.500859] i915_init+0x1d/0x8f [i915]
[ 227.500934] ? 0xffffffffc144a000
[ 227.500936] do_one_initcall+0x58/0x2d0
[ 227.500938] ? rcu_read_lock_sched_held+0x3f/0x80
[ 227.500940] ? kmem_cache_alloc_trace+0x238/0x2d0
[ 227.500944] do_init_module+0x5c/0x270
[ 227.500946] __do_sys_finit_module+0x95/0xe0
[ 227.500949] do_syscall_64+0x38/0x90
[ 227.500951] entry_SYSCALL_64_after_hwframe+0x44/0xae
[ 227.500953] RIP: 0033:0x7ffa59d2ae0d
[ 227.500954] Code: c8 0c 00 0f 05 eb a9 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 3b 80 0c 00 f7 d8 64 89 01 48
[ 227.500955] RSP: 002b:00007fff320bbf48 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 227.500956] RAX: ffffffffffffffda RBX: 00000000022ea710 RCX: 00007ffa59d2ae0d
[ 227.500957] RDX: 0000000000000000 RSI: 00000000022e1d90 RDI: 0000000000000004
[ 227.500958] RBP: 0000000000000020 R08: 00007ffa59df3a60 R09: 0000000000000070
[ 227.500958] R10: 00000000022e1d90 R11: 0000000000000246 R12: 00000000022e1d90
[ 227.500959] R13: 00000000022e58e0 R14: 0000000000000043 R15: 00000000022e42c0
v2:
(CI build)
- Fix build error
Fixes:
|
||
|---|---|---|
| .. | ||
| display | ||
| gem | ||
| gt | ||
| gvt | ||
| pxp | ||
| selftests | ||
| .gitignore | ||
| dma_resv_utils.c | ||
| dma_resv_utils.h | ||
| i915_active_types.h | ||
| i915_active.c | ||
| i915_active.h | ||
| i915_buddy.c | ||
| i915_buddy.h | ||
| i915_cmd_parser.c | ||
| i915_config.c | ||
| i915_debugfs_params.c | ||
| i915_debugfs_params.h | ||
| i915_debugfs.c | ||
| i915_debugfs.h | ||
| i915_drv.c | ||
| i915_drv.h | ||
| i915_fixed.h | ||
| i915_gem_evict.c | ||
| i915_gem_gtt.c | ||
| i915_gem_gtt.h | ||
| i915_gem_ww.c | ||
| i915_gem_ww.h | ||
| i915_gem.c | ||
| i915_gem.h | ||
| i915_getparam.c | ||
| i915_gpu_error.c | ||
| i915_gpu_error.h | ||
| i915_ioc32.c | ||
| i915_ioc32.h | ||
| i915_irq.c | ||
| i915_irq.h | ||
| i915_memcpy.c | ||
| i915_memcpy.h | ||
| i915_mitigations.c | ||
| i915_mitigations.h | ||
| i915_mm.c | ||
| i915_module.c | ||
| i915_params.c | ||
| i915_params.h | ||
| i915_pci.c | ||
| i915_pci.h | ||
| i915_perf_types.h | ||
| i915_perf.c | ||
| i915_perf.h | ||
| i915_pmu.c | ||
| i915_pmu.h | ||
| i915_priolist_types.h | ||
| i915_pvinfo.h | ||
| i915_query.c | ||
| i915_query.h | ||
| i915_reg.h | ||
| i915_request.c | ||
| i915_request.h | ||
| i915_scatterlist.c | ||
| i915_scatterlist.h | ||
| i915_scheduler_types.h | ||
| i915_scheduler.c | ||
| i915_scheduler.h | ||
| i915_selftest.h | ||
| i915_suspend.c | ||
| i915_suspend.h | ||
| i915_sw_fence_work.c | ||
| i915_sw_fence_work.h | ||
| i915_sw_fence.c | ||
| i915_sw_fence.h | ||
| i915_switcheroo.c | ||
| i915_switcheroo.h | ||
| i915_syncmap.c | ||
| i915_syncmap.h | ||
| i915_sysfs.c | ||
| i915_sysfs.h | ||
| i915_trace_points.c | ||
| i915_trace.h | ||
| i915_ttm_buddy_manager.c | ||
| i915_ttm_buddy_manager.h | ||
| i915_user_extensions.c | ||
| i915_user_extensions.h | ||
| i915_utils.c | ||
| i915_utils.h | ||
| i915_vgpu.c | ||
| i915_vgpu.h | ||
| i915_vma_types.h | ||
| i915_vma.c | ||
| i915_vma.h | ||
| intel_device_info.c | ||
| intel_device_info.h | ||
| intel_dram.c | ||
| intel_dram.h | ||
| intel_gvt.c | ||
| intel_gvt.h | ||
| intel_memory_region.c | ||
| intel_memory_region.h | ||
| intel_pch.c | ||
| intel_pch.h | ||
| intel_pcode.c | ||
| intel_pcode.h | ||
| intel_pm.c | ||
| intel_pm.h | ||
| intel_region_ttm.c | ||
| intel_region_ttm.h | ||
| intel_runtime_pm.c | ||
| intel_runtime_pm.h | ||
| intel_sbi.c | ||
| intel_sbi.h | ||
| intel_step.c | ||
| intel_step.h | ||
| intel_uncore.c | ||
| intel_uncore.h | ||
| intel_wakeref.c | ||
| intel_wakeref.h | ||
| intel_wopcm.c | ||
| intel_wopcm.h | ||
| Kconfig | ||
| Kconfig.debug | ||
| Kconfig.profile | ||
| Kconfig.unstable | ||
| Makefile | ||
| TODO.txt | ||
| vlv_sideband.c | ||
| vlv_sideband.h | ||
| vlv_suspend.c | ||
| vlv_suspend.h | ||