]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit
drm/i915/gt: Introduce barrier pulses along engines
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 21 Oct 2019 17:43:39 +0000 (18:43 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 21 Oct 2019 20:01:52 +0000 (21:01 +0100)
commitb5e8e954eb672e7128e50589c43817b0ffce6f75
tree704bd8df9a1f494b271d7d51e6143bbc7de57338
parent928da10c0ca2aee50099d63f20feeec71344ae67
drm/i915/gt: Introduce barrier pulses along engines

To flush idle barriers, and even inflight requests, we want to send a
preemptive 'pulse' along an engine. We use a no-op request along the
pinned kernel_context at high priority so that it should run or else
kick off the stuck requests. We can use this to ensure idle barriers are
immediately flushed, as part of a context cancellation mechanism, or as
part of a heartbeat mechanism to detect and reset a stuck GPU.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191021174339.5389-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c [new file with mode: 0644]
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h [new file with mode: 0644]
drivers/gpu/drm/i915/gt/intel_engine_pm.c
drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c [new file with mode: 0644]
drivers/gpu/drm/i915/i915_active.c
drivers/gpu/drm/i915/i915_priolist_types.h
drivers/gpu/drm/i915/selftests/i915_live_selftests.h