All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sagar Arun Kamble <sagar.a.kamble@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Park before resetting the submission backend
Date: Mon, 9 Apr 2018 16:08:34 +0530	[thread overview]
Message-ID: <5771b79d-e19e-c429-527b-b49e9089af12@intel.com> (raw)
In-Reply-To: <20180409101819.5572-1-chris@chris-wilson.co.uk>



On 4/9/2018 3:48 PM, Chris Wilson wrote:
> As different backends may have different park/unpark callbacks, we
> should only ever switch backends (reset_default_submission on wedge
> recovery, or on enabling the guc) while parked.
>
> v2: Remove the assert from the guc code, as we are currently trying to
> modify the engine vfuncs pointer on a live system after reset (not just
> wedging). We will just have to hope that the system is balanced.
> v3: Rebase onto __i915_gem_park and improve grammar.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> ---
>   drivers/gpu/drm/i915/i915_gem.c        | 15 ++++++++++++---
>   drivers/gpu/drm/i915/intel_engine_cs.c |  3 +++
>   2 files changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 28ab0beff86c..dd3e292ba243 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -144,8 +144,6 @@ static u32 __i915_gem_park(struct drm_i915_private *i915)
>   	if (!i915->gt.awake)
>   		return I915_EPOCH_INVALID;
>   
> -	GEM_BUG_ON(i915->gt.epoch == I915_EPOCH_INVALID);
> -
>   	/*
>   	 * Be paranoid and flush a concurrent interrupt to make sure
>   	 * we don't reactivate any irq tasklets after parking.
> @@ -173,6 +171,7 @@ static u32 __i915_gem_park(struct drm_i915_private *i915)
>   
>   	intel_runtime_pm_put(i915);
>   
> +	GEM_BUG_ON(i915->gt.epoch == I915_EPOCH_INVALID);
>   	return i915->gt.epoch;
>   }
>   
> @@ -3435,7 +3434,17 @@ bool i915_gem_unset_wedged(struct drm_i915_private *i915)
>   		}
>   	}
>   	i915_retire_requests(i915);
> -	GEM_BUG_ON(i915->gt.active_requests);
> +
> +	/*
> +	 * Park before disengaging the old submit mechanism as different
> +	 * backends may have different park/unpack callbacks.
> +	 *
> +	 * We are idle; the idle-worker will be queued, but we need to run
> +	 * it now. As we already hold the struct mutex, we can park the GPU
> +	 * right away, letting the lazy worker see that we are already active
> +	 * again by the time it acquires the mutex.
> +	 */
> +	__i915_gem_park(i915);
>   
>   	/*
>   	 * Undo nop_submit_request. We prevent all new i915 requests from
> diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c b/drivers/gpu/drm/i915/intel_engine_cs.c
> index 12486d8f534b..b4ea77a2896c 100644
> --- a/drivers/gpu/drm/i915/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/intel_engine_cs.c
> @@ -1651,6 +1651,9 @@ void intel_engines_reset_default_submission(struct drm_i915_private *i915)
>   	struct intel_engine_cs *engine;
>   	enum intel_engine_id id;
>   
> +	/* Must be parked first! */
> +	GEM_BUG_ON(i915->gt.awake);
> +
>   	for_each_engine(engine, i915, id)
>   		engine->set_default_submission(engine);
>   }

-- 
Thanks,
Sagar

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2018-04-09 10:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-09 10:18 [PATCH] drm/i915: Park before resetting the submission backend Chris Wilson
2018-04-09 10:38 ` Sagar Arun Kamble [this message]
2018-04-09 10:41   ` Chris Wilson
2018-04-09 10:49     ` Michal Wajdeczko
2018-04-09 11:01 ` ✗ Fi.CI.BAT: warning for drm/i915: Park before resetting the submission backend (rev2) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2018-04-05 10:57 [PATCH] drm/i915: Park before resetting the submission backend Chris Wilson
2018-04-05 11:03 ` Chris Wilson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5771b79d-e19e-c429-527b-b49e9089af12@intel.com \
    --to=sagar.a.kamble@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.