[Intel-gfx] [PATCH 5/7] drm/i915: Use cpu clock to calculate rc0 residency

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Mar 14 13:48:53 UTC 2017


On Tue, Mar 14, 2017 at 01:30:40PM +0000, Chris Wilson wrote:
> On Tue, Mar 14, 2017 at 03:17:27PM +0200, Mika Kuoppala wrote:
> > Avoid more costly punit access and use the local cpu clock.
> > The time diff between separate processor units is irrelevant in
> > our rc0 residency granularity so we can ignore it.
> > 
> > Cc: Chris Wilson <chris at chris-wilson.co.uk>
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_drv.h |  2 +-
> >  drivers/gpu/drm/i915/i915_irq.c | 10 ++++------
> >  2 files changed, 5 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> > index 0023e21..70e335c 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -1323,7 +1323,7 @@ struct vlv_s0ix_state {
> >  };
> >  
> >  struct intel_rps_ei {
> > -	u32 cz_clock;
> > +	u64 cpu_clock;
> >  	u32 render_c0;
> >  	u32 media_c0;
> >  };
> > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> > index 31f0d7c..00e7875 100644
> > --- a/drivers/gpu/drm/i915/i915_irq.c
> > +++ b/drivers/gpu/drm/i915/i915_irq.c
> > @@ -1076,7 +1076,7 @@ static void notify_ring(struct intel_engine_cs *engine)
> >  static void vlv_c0_read(struct drm_i915_private *dev_priv,
> >  			struct intel_rps_ei *ei)
> >  {
> > -	ei->cz_clock = vlv_punit_read(dev_priv, PUNIT_REG_CZ_TIMESTAMP);
> > +	ei->cpu_clock = local_clock();
> 
> local_clock() is specific to a single cpu.
> 
> ktime_t ktime_get().

Perhaps _raw() so that ntp adjustment doesn't change things
over time? But I guess it shouldn't matter all that much
either way.

> 
> ktime_to_ns(ktime_sub(now.cpu_clock, prev->cpu_clock));

There's no ktime_ns_delta() it seems. There is ktime_us_delta()
and ktime_ms_delta() if you don't need ns resolution.

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list