[Intel-gfx] [PATCH 2/2] drm/i915/pmu: Use GT parked for estimating RC6 while asleep

Chris Wilson chris at chris-wilson.co.uk
Mon Aug 5 19:25:58 UTC 2019


Quoting Chris Wilson (2019-08-05 10:43:33)
> As we track when we put the GT device to sleep upon idling, we can use
> that callback to sample the current rc6 counters and record the
> timestamp for estimating samples after that point while asleep.
> 
> v2: Stick to using ktime_t
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105010
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c |  21 +++--
>  drivers/gpu/drm/i915/i915_pmu.c     | 120 ++++++++++++++--------------
>  drivers/gpu/drm/i915/i915_pmu.h     |   4 +-
>  3 files changed, 69 insertions(+), 76 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 8953336f2ae5..bcb8081f564f 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -39,6 +39,7 @@
>  #include "display/intel_psr.h"
>  
>  #include "gem/i915_gem_context.h"
> +#include "gt/intel_gt_pm.h"
>  #include "gt/intel_reset.h"
>  #include "gt/uc/intel_guc_submission.h"
>  
> @@ -3996,13 +3997,11 @@ static int i915_sseu_status(struct seq_file *m, void *unused)
>  static int i915_forcewake_open(struct inode *inode, struct file *file)
>  {
>         struct drm_i915_private *i915 = inode->i_private;
> +       struct intel_gt *gt = &i915->gt;
>  
> -       if (INTEL_GEN(i915) < 6)
> -               return 0;
> -
> -       file->private_data =
> -               (void *)(uintptr_t)intel_runtime_pm_get(&i915->runtime_pm);
> -       intel_uncore_forcewake_user_get(&i915->uncore);
> +       intel_gt_pm_get(gt);
> +       if (INTEL_GEN(i915) >= 6)
> +               intel_uncore_forcewake_user_get(gt->uncore);

And this interacts badly with the plan to use wait_for_idle. :|
So be it.
-Chris


More information about the Intel-gfx mailing list