[Intel-gfx] [PATCH 3/4] drm/i915/pmu: Cheat when reading the actual frequency to avoid fw

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Fri Nov 8 10:19:11 UTC 2019


On 08/11/2019 08:56, Chris Wilson wrote:
> We want to avoid taking forcewake when querying the performance stats,
> as we wish to avoid perturbing the system under observation. (And with
> the forcewake being kept alive for 1ms after use, sampling the frequency
> from a timer keeps forcewake 60% active.)
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
>   drivers/gpu/drm/i915/i915_pmu.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
> index 05395015d1f2..dbde80a376cb 100644
> --- a/drivers/gpu/drm/i915/i915_pmu.c
> +++ b/drivers/gpu/drm/i915/i915_pmu.c
> @@ -366,8 +366,12 @@ frequency_sample(struct intel_gt *gt, unsigned int period_ns)
>   
>   		val = rps->cur_freq;
>   		if (intel_gt_pm_get_if_awake(gt)) {
> -			val = intel_uncore_read_notrace(uncore, GEN6_RPSTAT1);
> -			val = intel_get_cagf(rps, val);
> +			u32 stat;
> +
> +			stat = intel_uncore_read_fw(uncore, GEN6_RPSTAT1);
> +			if (stat)
> +				val = intel_get_cagf(rps, stat);
> +
>   			intel_gt_pm_put(gt);
>   		}
>   
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list