Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58d1b427 authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/execlists: Record preemption for selftests



Put back the preemption counters lost in commit 22b7a426
("drm/i915/execlists: Preempt-to-busy") so that our selftests that
assert no preemption took place continue to function.

v2: But a timeslice is only a "soft" preemption!

Fixes: 22b7a426 ("drm/i915/execlists: Preempt-to-busy")
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190710064454.682-1-chris@chris-wilson.co.uk
parent b33c61db
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -921,6 +921,11 @@ enable_timeslice(struct intel_engine_cs *engine)
	return last && need_timeslice(engine, last);
}

static void record_preemption(struct intel_engine_execlists *execlists)
{
	(void)I915_SELFTEST_ONLY(execlists->preempt_hang.count++);
}

static void execlists_dequeue(struct intel_engine_cs *engine)
{
	struct intel_engine_execlists * const execlists = &engine->execlists;
@@ -989,6 +994,8 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
				  last->fence.seqno,
				  last->sched.attr.priority,
				  execlists->queue_priority_hint);
			record_preemption(execlists);

			/*
			 * Don't let the RING_HEAD advance past the breadcrumb
			 * as we unwind (and until we resubmit) so that we do