Re: [PATCH v4] drm/i915/pmu: Use GT parked for estimating RC6 while asleep

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

 



Quoting Chris Wilson (2019-09-12 11:13:39)
> +#if IS_ENABLED(CONFIG_PM)
> +
> +static inline s64 ktime_since(const ktime_t kt)
> +{
> +       return ktime_to_ns(ktime_sub(ktime_get(), kt));
> +}
> +
> +void i915_pmu_gt_parked(struct drm_i915_private *i915)
> +{
> +       struct i915_pmu *pmu = &i915->pmu;
> +       u64 val;
> +
> +       if (!pmu->base.event_init)
> +               return;
> +
> +       spin_lock_irq(&pmu->lock);
> +
> +       val = 0;
> +       if (pmu->sample[__I915_SAMPLE_RC6].cur)
> +               val = __get_rc6(&i915->gt);
> +
> +       if (val >= pmu->sample[__I915_SAMPLE_RC6_ESTIMATED].cur) {
> +               pmu->sample[__I915_SAMPLE_RC6_ESTIMATED].cur = 0;
> +               pmu->sample[__I915_SAMPLE_RC6].cur = val;
> +       }
> +       pmu->sleep_last = ktime_get();
> +
> +       /*
> +        * Signal sampling timer to stop if only engine events are enabled and
> +        * GPU went idle.
> +        */
> +       pmu->timer_enabled = pmu_needs_timer(pmu, false);

The caveat here is that we don't stop the rc6 pmu timer while we sleep.
Seems like 6 of one, half-a-dozen of the other.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux