Hi Matt,

On Wed, Sep 14, 2022 at 03:04:25PM -0700, Matt Roper wrote:
> From: Tvrtko Ursulin <[email protected]>
> 
> Walk all GTs from i915_gem_resume when resuming engines.
> 
> Cc: Andi Shyti <[email protected]>
> Signed-off-by: Tvrtko Ursulin <[email protected]>
> Signed-off-by: Matt Roper <[email protected]>

I had this (and others) in my multi-gt branch from a long time
but never had time to clean it up and send it. Thanks for taking
it.

Reviewed-by: Andi Shyti <[email protected]>

Thanks,
Andi

> ---
>  drivers/gpu/drm/i915/gem/i915_gem_pm.c | 22 ++++++++++++++++++++--
>  1 file changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c 
> b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> index 3428f735e786..2c80cc8362b6 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> @@ -212,7 +212,8 @@ int i915_gem_freeze_late(struct drm_i915_private *i915)
>  
>  void i915_gem_resume(struct drm_i915_private *i915)
>  {
> -     int ret;
> +     struct intel_gt *gt;
> +     int ret, i, j;
>  
>       GEM_TRACE("%s\n", dev_name(i915->drm.dev));
>  
> @@ -224,8 +225,25 @@ void i915_gem_resume(struct drm_i915_private *i915)
>        * guarantee that the context image is complete. So let's just reset
>        * it and start again.
>        */
> -     intel_gt_resume(to_gt(i915));
> +     for_each_gt(gt, i915, i)
> +             if (intel_gt_resume(gt))
> +                     goto err_wedged;
>  
>       ret = lmem_restore(i915, I915_TTM_BACKUP_ALLOW_GPU);
>       GEM_WARN_ON(ret);
> +
> +     return;
> +
> +err_wedged:
> +     for_each_gt(gt, i915, j) {
> +             if (!intel_gt_is_wedged(gt)) {
> +                     dev_err(i915->drm.dev,
> +                             "Failed to re-initialize GPU[%u], declaring it 
> wedged!\n",
> +                             j);
> +                     intel_gt_set_wedged(gt);
> +             }
> +
> +             if (j == i)
> +                     break;
> +     }
>  }
> -- 
> 2.37.3

Reply via email to