From: Chris Wilson Date: Mon, 25 May 2020 07:53:39 +0000 (+0100) Subject: drm/i915/execlists: Shortcircuit queue_prio() for no internal levels X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9ae6c4ef7b62e619f1c49dcc0ceb2b2de2a29f04;p=linux.git drm/i915/execlists: Shortcircuit queue_prio() for no internal levels If there are no internal levels and the user priority-shift is zero, we can help the compiler eliminate some dead code: Function old new delta start_timeslice 169 154 -15 __execlists_submission_tasklet 4696 4659 -37 Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20200525075347.582-4-chris@chris-wilson.co.uk --- diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c index de5be57ed6d22..3214a4ecc31a8 100644 --- a/drivers/gpu/drm/i915/gt/intel_lrc.c +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c @@ -446,6 +446,9 @@ static int queue_prio(const struct intel_engine_execlists *execlists) * we have to flip the index value to become priority. */ p = to_priolist(rb); + if (!I915_USER_PRIORITY_SHIFT) + return p->priority; + return ((p->priority + 1) << I915_USER_PRIORITY_SHIFT) - ffs(p->used); }