drm/i915/pmu: Skip sampling engines if gt is asleep
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 18 Dec 2019 00:07:56 +0000 (00:07 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 18 Dec 2019 11:09:15 +0000 (11:09 +0000)
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 <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191218000756.3475668-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_pmu.c

index 5f2adfb..0032547 100644 (file)
@@ -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;