[Intel-gfx] [PATCH 15/22] drm/i915/guc: Flush G2H work queue during reset
Daniel Vetter
daniel at ffwll.ch
Tue Aug 17 10:06:54 UTC 2021
On Mon, Aug 16, 2021 at 06:51:32AM -0700, Matthew Brost wrote:
> It isn't safe to scrub for missing G2H or continue with the reset until
> all G2H processing is complete. Flush the G2H work queue during reset to
> ensure it is done running.
>
> Fixes: eb5e7da736f3 ("drm/i915/guc: Reset implementation for new GuC interface")
> Signed-off-by: Matthew Brost <matthew.brost at intel.com>
> ---
> .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 18 ++----------------
> 1 file changed, 2 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> index 3a01743e09ea..8c560ed14976 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
> @@ -707,8 +707,6 @@ static void guc_flush_submissions(struct intel_guc *guc)
>
> void intel_guc_submission_reset_prepare(struct intel_guc *guc)
> {
> - int i;
> -
> if (unlikely(!guc_submission_initialized(guc))) {
> /* Reset called during driver load? GuC not yet initialised! */
> return;
> @@ -724,20 +722,8 @@ void intel_guc_submission_reset_prepare(struct intel_guc *guc)
>
> guc_flush_submissions(guc);
>
> - /*
> - * Handle any outstanding G2Hs before reset. Call IRQ handler directly
> - * each pass as interrupt have been disabled. We always scrub for
> - * outstanding G2H as it is possible for outstanding_submission_g2h to
> - * be incremented after the context state update.
> - */
> - for (i = 0; i < 4 && atomic_read(&guc->outstanding_submission_g2h); ++i) {
> - intel_guc_to_host_event_handler(guc);
> -#define wait_for_reset(guc, wait_var) \
> - intel_guc_wait_for_pending_msg(guc, wait_var, false, (HZ / 20))
> - do {
> - wait_for_reset(guc, &guc->outstanding_submission_g2h);
> - } while (!list_empty(&guc->ct.requests.incoming));
> - }
> + flush_work(&guc->ct.requests.worker);
Same thing about flush_work as in an earlier patch.
-Daniel
> +
> scrub_guc_desc_for_outstanding_g2h(guc);
> }
>
> --
> 2.32.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list