OSDN Git Service

drm/i915/selftests: Flush the submission, not cancel it!
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 May 2020 12:43:04 +0000 (13:43 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 May 2020 13:57:19 +0000 (14:57 +0100)
Use intel_engine_flush_submission() when we want to ensure that the
tasklet is run. tasklet_kill(), while it may ensure that an ongoing
tasklet is completed, also prevents the tasklet from running if it's
already scheduled and hasn't yet been run.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1874
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200521124304.3157692-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/selftest_lrc.c

index ef38dd5..66f710b 100644 (file)
@@ -332,7 +332,7 @@ static int live_unlite_restore(struct intel_gt *gt, int prio)
                i915_request_put(rq[0]);
 
 err_ce:
-               tasklet_kill(&engine->execlists.tasklet); /* flush submission */
+               intel_engine_flush_submission(engine);
                igt_spinner_end(&spin);
                for (n = 0; n < ARRAY_SIZE(ce); n++) {
                        if (IS_ERR_OR_NULL(ce[n]))