aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_request.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_request.c')
-rw-r--r--drivers/gpu/drm/i915/i915_request.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_request.c b/drivers/gpu/drm/i915/i915_request.c
index a492385b2089..56140ca054e8 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1127,8 +1127,20 @@ void i915_request_add(struct i915_request *request)
1127 */ 1127 */
1128 local_bh_disable(); 1128 local_bh_disable();
1129 rcu_read_lock(); /* RCU serialisation for set-wedged protection */ 1129 rcu_read_lock(); /* RCU serialisation for set-wedged protection */
1130 if (engine->schedule) 1130 if (engine->schedule) {
1131 engine->schedule(request, &request->gem_context->sched); 1131 struct i915_sched_attr attr = request->gem_context->sched;
1132
1133 /*
1134 * Boost priorities to new clients (new request flows).
1135 *
1136 * Allow interactive/synchronous clients to jump ahead of
1137 * the bulk clients. (FQ_CODEL)
1138 */
1139 if (!prev || i915_request_completed(prev))
1140 attr.priority |= I915_PRIORITY_NEWCLIENT;
1141
1142 engine->schedule(request, &attr);
1143 }
1132 rcu_read_unlock(); 1144 rcu_read_unlock();
1133 i915_sw_fence_commit(&request->submit); 1145 i915_sw_fence_commit(&request->submit);
1134 local_bh_enable(); /* Kick the execlists tasklet if just scheduled */ 1146 local_bh_enable(); /* Kick the execlists tasklet if just scheduled */