OSDN Git Service

drm/i915/execlists: Hesitate before slicing
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 3 Jul 2019 09:17:20 +0000 (10:17 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 3 Jul 2019 10:20:35 +0000 (11:20 +0100)
Be a little more hesitant before injecting a timeslice, and try to take
into account any change in priority that is due for the running task
before switching to another task. This will allow us to arbitrarily
prevent switching away from a request if we deem it necessarily to
disable preemption, for instance.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190703091726.11690-9-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c

index 953b393..1e85e04 100644 (file)
@@ -899,7 +899,7 @@ need_timeslice(struct intel_engine_cs *engine, const struct i915_request *rq)
        hint = max(rq_prio(list_next_entry(rq, sched.link)),
                   engine->execlists.queue_priority_hint);
 
-       return hint >= rq_prio(rq);
+       return hint >= effective_prio(rq);
 }
 
 static bool