[Intel-gfx] [PATCH] drm/i915: Do a lightweight pm_get() from intel_mark_busy()

Chris Wilson chris at chris-wilson.co.uk
Wed Jun 24 01:43:14 PDT 2015


On Wed, Jun 24, 2015 at 10:40:02AM +0200, Daniel Vetter wrote:
> On Wed, Jun 24, 2015 at 09:09:03AM +0100, Chris Wilson wrote:
> > Akash noticed that we were recursing from the call to
> > intel_runtime_pm_get() inside intel_mark_busy() when we were already
> > waking the device (through another intel_runtime_pm_get()). In
> > intel_mark_busy() we know the device is awake and purpose of the
> > reference here is to simply keep the device awake until the GPU is idle
> > again. As such we do not need the full resume, and can call the lighter
> > intel_runtime_pm_get_noresume() instead.
> 
> How does that happen? I only see a mark_busy in add_request, and we
> shouldn't call that from intel_rpm_get(). Or do we? Calltrace of how this
> happens would be great.

We are looking at VLV workarounds for which i915_gem_init_hw() is acting
very fishy. The recursion is a result of that, but that is just a
demonstration that we didn't need the full pm_get() here.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list