drm/i915/selftests: Wait until we start timeslicing after a submit
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 3 Apr 2020 19:02:09 +0000 (20:02 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 3 Apr 2020 20:38:27 +0000 (21:38 +0100)
If we submit, we do not start timeslicing until we process the CS event
that marks the start of the context running on HW. So in the selftest,
be sure to wait until we have processed the pending events before
asserting that timeslicing has begun.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200403190209.21818-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/selftest_lrc.c

index 985d4041d929c8f79ec8c3a837951f35146f4a5a..a9ccfae54c24789b9cd4176c7d04b701ed219495 100644 (file)
@@ -1244,7 +1244,12 @@ static int live_timeslice_queue(void *arg)
                if (err)
                        goto err_rq;
 
-               intel_engine_flush_submission(engine);
+               /* Wait until we ack the release_queue and start timeslicing */
+               do {
+                       cond_resched();
+                       intel_engine_flush_submission(engine);
+               } while (READ_ONCE(engine->execlists.pending[0]));
+
                if (!READ_ONCE(engine->execlists.timer.expires) &&
                    !i915_request_completed(rq)) {
                        struct drm_printer p =