Re: [PATCH 2/2] drm/i915/pmu: Use correct requested freq for SLPC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 04/03/2023 01:27, Ashutosh Dixit wrote:
SLPC does not use 'struct intel_rps'. Use UNSLICE_RATIO bits from

Would it be more accurate to say 'SLPC does not use rps->cur_freq' rather than it not using struct intel_rps?

Fixes: / stable ? CI chances of catching this?

GEN6_RPNSWREQ for SLPC. See intel_rps_get_requested_frequency.

Bspec: 52745

Signed-off-by: Ashutosh Dixit <ashutosh.dixit@xxxxxxxxx>
---
  drivers/gpu/drm/i915/i915_pmu.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index f0a1e36915b8..5ee836610801 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -394,8 +394,13 @@ frequency_sample(struct intel_gt *gt, unsigned int period_ns)
  		 * frequency. Fortunately, the read should rarely fail!
  		 */
  		val = intel_rps_get_cagf(rps, intel_rps_read_rpstat_fw(rps));
-		if (!val)
-			val = rps->cur_freq;
+		if (!val) {
+			if (intel_uc_uses_guc_slpc(&gt->uc))
+				val = intel_rps_read_punit_req(rps) >>
+						GEN9_SW_REQ_UNSLICE_RATIO_SHIFT;
+			else
+				val = rps->cur_freq;
+		}

That's a bunch of duplication from intel_rps.c so perhaps the appropriate helpers should be exported (some way) from there.

Regards,

Tvrtko

add_sample_mult(&pmu->sample[__I915_SAMPLE_FREQ_ACT],
  				intel_gpu_freq(rps, val), period_ns / 1000);



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux