drm/i915/gt: Schedule request retirement when signaler idles
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Dec 2019 12:43:52 +0000 (12:43 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 19 Dec 2019 17:03:56 +0000 (17:03 +0000)
commitdc93c9b69315167f5678b94aa911dc8e7c299fe5
tree5413c127aa08aaeb9db78bee5a0ba236921552fe
parentcabeacd4cc132873de212fcb0e8739b95e6f2a02
drm/i915/gt: Schedule request retirement when signaler idles

Very similar to commit 4f88f8747fa4 ("drm/i915/gt: Schedule request
retirement when timeline idles"), but this time instead of coupling into
the execlists CS event interrupt, we couple into the breadcrumb
interrupt and queue a timeline's retirement when the last signaler is
completed. This should allow us to more rapidly park ringbuffer
submission, and so help reduce power consumption on older systems.

v2: Fixup intel_engine_add_retire() to handle concurrent callers

References: 4f88f8747fa4 ("drm/i915/gt: Schedule request retirement when timeline idles")
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>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191219124353.8607-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
drivers/gpu/drm/i915/gt/intel_gt_requests.c
drivers/gpu/drm/i915/gt/intel_lrc.c