[Intel-gfx] [PATCH v2 3/3] drm/i915: optimise intel_runtime_pm_{get, put}

Imre Deak imre.deak at intel.com
Fri Nov 18 15:41:50 UTC 2016


On pe, 2016-11-18 at 14:00 +0000, Chris Wilson wrote:
> On Fri, Nov 18, 2016 at 03:36:47PM +0200, David Weinehall wrote:
> > Benchmarking shows that on resume we spend quite a bit of time
> > just taking and dropping these references, leaving us two options;
> > either rewriting the code not to take these references more than
> > once, which would be a rather invasive change since the involved
> > functions are used from other places, or to optimise
> > intel_runtime_pm_{get,put}().  This patch does the latter.
> > Initial benchmarking indicate improvements of a couple
> > of milliseconds on resume.
> > 
> > Original patch by Chris, with slight fixes by me.
> > 
> > v2: Fix missing return value (Patchwork)
> >     Remove extra atomic_dec() (Chris)
> > 
> > Signed-off-by: David Weinehall <david.weinehall at linux.intel.com>
> > CC: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Imre Deak <imre.deak at linux.intel.com>
> 
> I'm happy with this. Not amused that it apparently saves quite a bit
> of
> overhead with frequent pm_runtime calls.
> 
> Imre?

I think the overhead is because the RPM core takes a lock and checks if
the device needs to be woken up even if the runtime_usage count is 0.
But for us the device is awake whenever wakeref_count > 0, so yes we
can optimize things.

> -Chris
> 


More information about the Intel-gfx mailing list