]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gt: Track the most recent pulse for the heartbeat
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 6 Oct 2020 09:46:53 +0000 (10:46 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 7 Oct 2020 09:23:11 +0000 (10:23 +0100)
commiteb49d66552dafee4a2eefe383d1077d50217c3f5
treef1744d6ec278ee8f81ed35d43f8c53d1d2834f52
parent119322446a7e34d9ff18abf7b4b5c638eeb65113
drm/i915/gt: Track the most recent pulse for the heartbeat

Since we track the idle_pulse for flushing the barriers and avoid
re-emitting the pulse upon idling if no futher action is required, this
also impacts the heartbeat. Before emitting a fresh heartbeat, we look
at the engine idle status and assume that if the pulse was the last
request emitted along the heartbeat, the engine is idling and a
heartbeat pulse not required. This assumption fails, but we can reuse
the idle pulse as the heartbeat if we are yet to emit one, and so track
the status of that pulse for our engine health check.

This impacts tgl/rcs0 as we rely on the heartbeat for our healthcheck for
the normal preemption detection mechanism is disabled by default.

Testcase: igt/gem_exec_schedule/preempt-hang/rcs0 #tgl
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201006094653.7558-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c