[Intel-gfx] [PATCH 09/31] drm/i915: Wait for engines to idle before retiring
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Jun 27 11:32:35 UTC 2018
On 25/06/2018 10:48, Chris Wilson wrote:
> In the next patch, we will start to defer retiring the request from the
> engine list if it is still active on the submission backend. To preserve
> the semantics that after wait-for-idle completes the system is idle and
> fully retired, we need to therefore wait for the backends to idle before
> calling i915_retire_requests().
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 858d188dd33b..5a9cae604e2b 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -3810,10 +3810,13 @@ int i915_gem_wait_for_idle(struct drm_i915_private *i915, unsigned int flags)
> if (err)
> return err;
> }
> +
> + err = wait_for_engines(i915);
> + if (err)
> + return err;
> +
> i915_retire_requests(i915);
> GEM_BUG_ON(i915->gt.active_requests);
> -
> - return wait_for_engines(i915);
> } else {
> struct intel_engine_cs *engine;
> enum intel_engine_id id;
> @@ -3824,9 +3827,9 @@ int i915_gem_wait_for_idle(struct drm_i915_private *i915, unsigned int flags)
> if (err)
> return err;
> }
> -
> - return 0;
> }
> +
> + return 0;
> }
>
> static void __i915_gem_object_flush_for_display(struct drm_i915_gem_object *obj)
>
To me this order makes more sense in general.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list