Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/xe/pm: do not warn about missing runtime PM protection after hot-unplug
@ 2026-08-06  8:57 Nitin Gote
  2026-08-06  8:30 ` Raag Jadav
                   ` (3 more replies)
  0 siblings, 4 replies; 17+ messages in thread
From: Nitin Gote @ 2026-08-06  8:57 UTC (permalink / raw)
  To: intel-xe; +Cc: Nitin Gote, Matthew Brost, Matthew Auld

Exec queues are owned by user fds and are destroyed when the fd is closed.
After hot-unplug this can happen from a deferred close during process
exit, after the device has been removed and runtime PM has been disabled.
The queue destroy path can call xe_pm_runtime_get_noresume(), and since
runtime PM is disabled pm_runtime_get_if_in_use() returns no reference,
so it warns about "Missing outer runtime PM protection".

This is a false positive for the hot-unplug teardown case. The device is
already unplugged, and the queue destroy path that triggered this warning
was checked and does not touch hardware state after unplug. GuC has already
been sanitized by guc_fini_hw(), so no H2G is sent and the hardware
teardown path is no longer reachable.

Skip the warning when the DRM device is already unplugged.

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(). (Matthew Brost)

v3:
 - Clarify that the queue destroy path was checked and does not touch
   hardware state after unplug. (Matthew Auld)

Link: https://patchwork.freedesktop.org/patch/725773/?series=166744&rev=4
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Assisted-by: GitHub-Copilot:claude-opus-4.8
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
---
 drivers/gpu/drm/xe/xe_pm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index a5289a9df8d2..a038687d5b2c 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -10,6 +10,7 @@
 #include <linux/suspend.h>
 #include <linux/dmi.h>
 
+#include <drm/drm_drv.h>
 #include <drm/drm_managed.h>
 #include <drm/ttm/ttm_placement.h>
 
@@ -914,7 +915,9 @@ void xe_pm_runtime_get_noresume(struct xe_device *xe)
 
 	if (!ref) {
 		pm_runtime_get_noresume(xe->drm.dev);
-		drm_WARN(&xe->drm, !xe_pm_suspending_or_resuming(xe),
+		drm_WARN(&xe->drm,
+			 !drm_dev_is_unplugged(&xe->drm) &&
+			 !xe_pm_suspending_or_resuming(xe),
 			 "Missing outer runtime PM protection\n");
 	}
 }
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread
* [PATCH] drm/xe/pm: do not warn about missing runtime PM protection after hot-unplug
@ 2026-07-30  5:36 Nitin Gote
  2026-07-30  5:59 ` Raag Jadav
  2026-07-30 12:35 ` Matthew Auld
  0 siblings, 2 replies; 17+ messages in thread
From: Nitin Gote @ 2026-07-30  5:36 UTC (permalink / raw)
  To: intel-xe; +Cc: Nitin Gote, Matthew Brost, Matthew Auld

After hot-unplug, device_del() disables runtime PM. A deferred fd close
can still run later during process exit and destroy remaining exec queues,
which may call xe_pm_runtime_get_noresume().

At this point pm_runtime_get_if_in_use() fails because runtime PM has
already been disabled, so xe_pm_runtime_get_noresume() warns with
"Missing outer runtime PM protection". This is expected after hot-unplug
and does not indicate a missing outer runtime PM guard from the caller.

Skip the warning when the DRM device is already unplugged.

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(). (Matthew Brost)

Link: https://patchwork.freedesktop.org/patch/725773/?series=166744&rev=4
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Assisted-by: GitHub-Copilot:claude-sonnet-4.6
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
---
 drivers/gpu/drm/xe/xe_pm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index a5289a9df8d2..a038687d5b2c 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -10,6 +10,7 @@
 #include <linux/suspend.h>
 #include <linux/dmi.h>
 
+#include <drm/drm_drv.h>
 #include <drm/drm_managed.h>
 #include <drm/ttm/ttm_placement.h>
 
@@ -914,7 +915,9 @@ void xe_pm_runtime_get_noresume(struct xe_device *xe)
 
 	if (!ref) {
 		pm_runtime_get_noresume(xe->drm.dev);
-		drm_WARN(&xe->drm, !xe_pm_suspending_or_resuming(xe),
+		drm_WARN(&xe->drm,
+			 !drm_dev_is_unplugged(&xe->drm) &&
+			 !xe_pm_suspending_or_resuming(xe),
 			 "Missing outer runtime PM protection\n");
 	}
 }
-- 
2.50.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-08-07 18:39 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-06  8:57 [PATCH] drm/xe/pm: do not warn about missing runtime PM protection after hot-unplug Nitin Gote
2026-08-06  8:30 ` Raag Jadav
2026-08-06  9:38   ` Matthew Brost
2026-08-06 19:01     ` Matthew Brost
2026-08-07 13:38       ` Gote, Nitin R
2026-08-07 18:39         ` Matthew Brost
2026-08-06  8:56 ` ✓ CI.KUnit: success for drm/xe/pm: do not warn about missing runtime PM protection after hot-unplug (rev2) Patchwork
2026-08-06  9:52 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-06 18:39 ` ✗ Xe.CI.FULL: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2026-07-30  5:36 [PATCH] drm/xe/pm: do not warn about missing runtime PM protection after hot-unplug Nitin Gote
2026-07-30  5:59 ` Raag Jadav
2026-07-30 12:05   ` Gote, Nitin R
2026-07-30 12:31     ` Raag Jadav
2026-08-06  6:09       ` Gote, Nitin R
2026-08-06  6:27         ` Raag Jadav
2026-07-30 12:35 ` Matthew Auld
2026-08-06  6:10   ` Gote, Nitin R

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox