[PATCH] drm/i915/pmu: Do not report 100% RC6 if not supported

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Tue Mar 30 15:06:37 UTC 2021


From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

We use GT parked status to estimate RC6 while not in use, however if RC6
is not supported to start with that does not work very well and produces a
false 100% RC6 readout.

Fix by not advancing the estimated RC6 counter when feature is not
supported.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Fixes: 1fe699e30113 ("drm/i915/pmu: Fix sleep under atomic in RC6 readout")
Reported-by: Eero T Tamminen <eero.t.tamminen at intel.com>
---
 drivers/gpu/drm/i915/i915_pmu.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index 41651ac255fa..02fe0d22c470 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -191,7 +191,10 @@ static u64 get_rc6(struct intel_gt *gt)
 		 * on top of the last known real value, as the approximated RC6
 		 * counter value.
 		 */
-		val = ktime_since_raw(pmu->sleep_last);
+		if (gt->rc6.supported)
+			val = ktime_since_raw(pmu->sleep_last);
+		else
+			val = 0;
 		val += pmu->sample[__I915_SAMPLE_RC6].cur;
 	}
 
-- 
2.27.0



More information about the dri-devel mailing list