[Intel-gfx] [PATCH 2/4] drm/i915: Make GEM resume all engines
Andi Shyti
andi.shyti at linux.intel.com
Thu Sep 15 21:34:05 UTC 2022
Hi Matt,
On Wed, Sep 14, 2022 at 03:04:25PM -0700, Matt Roper wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>
> Walk all GTs from i915_gem_resume when resuming engines.
>
> Cc: Andi Shyti <andi.shyti at intel.com>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
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 <andi.shyti at linux.intel.com>
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
More information about the Intel-gfx
mailing list