Commit f53ae29c authored by Chris Wilson's avatar Chris Wilson

drm/i915/gt: Include a few tracek for timeslicing

Add a few telltales to see when timeslicing is being enabled.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200331120502.14713-1-chris@chris-wilson.co.uk
parent 86dbf52d
...@@ -1814,16 +1814,25 @@ active_timeslice(const struct intel_engine_cs *engine) ...@@ -1814,16 +1814,25 @@ active_timeslice(const struct intel_engine_cs *engine)
static void set_timeslice(struct intel_engine_cs *engine) static void set_timeslice(struct intel_engine_cs *engine)
{ {
unsigned long duration;
if (!intel_engine_has_timeslices(engine)) if (!intel_engine_has_timeslices(engine))
return; return;
set_timer_ms(&engine->execlists.timer, active_timeslice(engine)); duration = active_timeslice(engine);
ENGINE_TRACE(engine, "bump timeslicing, interval:%lu", duration);
set_timer_ms(&engine->execlists.timer, duration);
} }
static void start_timeslice(struct intel_engine_cs *engine) static void start_timeslice(struct intel_engine_cs *engine)
{ {
struct intel_engine_execlists *execlists = &engine->execlists; struct intel_engine_execlists *execlists = &engine->execlists;
int prio = queue_prio(execlists); const int prio = queue_prio(execlists);
unsigned long duration;
if (!intel_engine_has_timeslices(engine))
return;
WRITE_ONCE(execlists->switch_priority_hint, prio); WRITE_ONCE(execlists->switch_priority_hint, prio);
if (prio == INT_MIN) if (prio == INT_MIN)
...@@ -1832,7 +1841,12 @@ static void start_timeslice(struct intel_engine_cs *engine) ...@@ -1832,7 +1841,12 @@ static void start_timeslice(struct intel_engine_cs *engine)
if (timer_pending(&execlists->timer)) if (timer_pending(&execlists->timer))
return; return;
set_timer_ms(&execlists->timer, timeslice(engine)); duration = timeslice(engine);
ENGINE_TRACE(engine,
"start timeslicing, prio:%d, interval:%lu",
prio, duration);
set_timer_ms(&execlists->timer, duration);
} }
static void record_preemption(struct intel_engine_execlists *execlists) static void record_preemption(struct intel_engine_execlists *execlists)
......
...@@ -209,6 +209,12 @@ static void kick_submission(struct intel_engine_cs *engine, ...@@ -209,6 +209,12 @@ static void kick_submission(struct intel_engine_cs *engine,
if (!inflight) if (!inflight)
goto unlock; goto unlock;
ENGINE_TRACE(engine,
"bumping queue-priority-hint:%d for rq:%llx:%lld, inflight:%llx:%lld prio %d\n",
prio,
rq->fence.context, rq->fence.seqno,
inflight->fence.context, inflight->fence.seqno,
inflight->sched.attr.priority);
engine->execlists.queue_priority_hint = prio; engine->execlists.queue_priority_hint = prio;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment