[Intel-gfx] [PATCH 06/15] drm/i915: get init power domain for gpu error state capture

Daniel Vetter daniel at ffwll.ch
Wed Apr 9 16:17:27 CEST 2014


On Tue, Apr 08, 2014 at 07:57:47PM +0300, Imre Deak wrote:
> Since the state capture happens from a deferred work, we may drop the
> last power domain/RPM reference since the error got triggered (from an
> interrupt handler for example). I hit this by writing to the i915_wedged
> debugfs file.
> 
> Signed-off-by: Imre Deak <imre.deak at intel.com>

This looks fishy - as long as the gpu is busy we should keep a runtime pm
ref around. Also same comment as before, grabbing a display power domain
for this seems wrong.
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_irq.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index b8f64d7..a586c16 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2174,6 +2174,8 @@ static void i915_error_work_func(struct work_struct *work)
>  		kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE,
>  				   reset_event);
>  
> +		intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
> +
>  		/*
>  		 * All state reset _must_ be completed before we update the
>  		 * reset counter, for otherwise waiters might miss the reset
> @@ -2184,6 +2186,8 @@ static void i915_error_work_func(struct work_struct *work)
>  
>  		intel_display_handle_reset(dev);
>  
> +		intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
> +
>  		if (ret == 0) {
>  			/*
>  			 * After all the gem state is reset, increment the reset
> -- 
> 1.8.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list