summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorNitin Gote <nitin.r.gote@intel.com>2026-08-11 19:07:55 +0530
committerTejas Upadhyay <tejas.upadhyay@intel.com>2026-08-20 15:33:31 +0530
commitff796870f5ddb0e6040c71b44d3d6247420d216f (patch)
tree8d8b48e72b21c86fc1f94f169b2ca293fa7c2332 /scripts/Makefile.thinlto
parent9b8234d176bb98e8612ddc4c3dbfd014219d5f6f (diff)
downloadlinux-next-ff796870f5ddb0e6040c71b44d3d6247420d216f.tar.gz
linux-next-ff796870f5ddb0e6040c71b44d3d6247420d216f.zip
drm/xe/guc: rework exec queue teardown PM/unplug handling
The core_hotunplug "with-load" subtests trigger a "Missing outer runtime PM protection" warning when an exec queue is torn down from a deferred fd close after the device has been hot-unplugged: guc_exec_queue_add_msg guc_exec_queue_destroy xe_exec_queue_destroy xe_file_close The reference is not actually missing. On unplug the PCI core disables runtime PM (device_del() -> __pm_runtime_disable()) while the old drm_device is kept alive by the still-open fd. Once runtime PM is disabled pm_runtime_get_if_in_use() returns -EINVAL regardless of the usage count, so xe_pm_runtime_get_noresume() can no longer observe the held reference and warns. drm_dev_unplug() always runs before runtime PM is disabled, so gate the message submission layer on the bound state instead of the PM reference: - guc_exec_queue_add_msg(): only take the noresume PM reference while drm_dev_enter() succeeds and record it in the message (MSG_PM_REF), so the put in guc_exec_queue_process_msg() stays balanced. - guc_exec_queue_process_msg(): re-check the bound state and skip each handler's HW access once the device is gone. - guc_exec_queue_destroy(): always post the CLEANUP message; the cleanup handler issues the deregister H2G only while bound, registered, fw running and not wedged, otherwise it tears down on the driver side. Also document the post-unplug PM-reference hazard in xe_pm_runtime_get_noresume(). Observed with new IGT core_hotunplug subtests: igt@core_hotunplug@hotreplug-with-load igt@core_hotunplug@hotunplug-rescan-with-load v2: - Drop the drm_dev_is_unplugged() bypass from guc_exec_queue_destroy() and instead exclude hot-unplug from the WARN in xe_pm_runtime_get_noresume(). v3: - Rework the fix in the message-submission layer instead of touching the WARN; gate PM/HW work on drm_dev_enter() and route all queues through the CLEANUP message. (Matthew Brost) - Prove the root cause (runtime PM disabled on unplug, not a zero refcount) and record it in the commit message. (Matt B, Raag) - Also remove EXEC_QUEUE_FLAG_PERMANENT flag in separate patch (Matthew Brost) Link: https://patchwork.freedesktop.org/patch/725773/?series=166744&rev=4 Suggested-by: Matthew Brost <matthew.brost@intel.com> Cc: Matthew Brost <matthew.brost@intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Cc: Raag Jadav <raag.jadav@intel.com> Signed-off-by: Nitin Gote <nitin.r.gote@intel.com> Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> Tested-by: Varun Gupta <varun.gupta@intel.com> Link: https://patch.msgid.link/20260811133753.1742666-5-nitin.r.gote@intel.com Signed-off-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions