If the whole GT is asleep, we know that each engine must also be asleep
and so we can quickly return without checking them all.

Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
---
 drivers/gpu/drm/i915/i915_pmu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index 5f2adfbf85be..00325471be90 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -312,6 +312,9 @@ engines_sample(struct intel_gt *gt, unsigned int period_ns)
        if ((i915->pmu.enable & ENGINE_SAMPLE_MASK) == 0)
                return;
 
+       if (!intel_gt_pm_is_awake(gt))
+               return;
+
        for_each_engine(engine, gt, id) {
                struct intel_engine_pmu *pmu = &engine->pmu;
                spinlock_t *mmio_lock;
-- 
2.24.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to