OSDN Git Service

drm/i915/selftests: Check for an already completed timeslice
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 10 Apr 2020 08:16:38 +0000 (09:16 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 10 Apr 2020 13:15:27 +0000 (14:15 +0100)
With timeslice yielding on a semaphore, we may complete timeslices much
faster than we were expecting and already have yielded the stuck
request. Before complaining that timeslicing is not enabled, check that
we haven't already applied the switch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Andi Shyti <andi.shyti@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200410081638.19893-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/selftest_lrc.c

index 616d035..6f5e35a 100644 (file)
@@ -1252,6 +1252,7 @@ static int live_timeslice_queue(void *arg)
                } while (READ_ONCE(engine->execlists.pending[0]));
 
                if (!READ_ONCE(engine->execlists.timer.expires) &&
+                   execlists_active(&engine->execlists) == rq &&
                    !i915_request_completed(rq)) {
                        struct drm_printer p =
                                drm_info_printer(gt->i915->drm.dev);