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. -Daniel > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Akash Goel <akash.goel@xxxxxxxxx> > Cc: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index a43abc38af90..da0d882cc71e 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -10668,7 +10668,7 @@ void intel_mark_busy(struct drm_device *dev) > if (dev_priv->mm.busy) > return; > > - intel_runtime_pm_get(dev_priv); > + intel_runtime_pm_get_noresume(dev_priv); > intel_rps_busy(dev_priv); > dev_priv->mm.busy = true; > } > -- > 2.1.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx