Commit 7983990c authored by Chris Wilson's avatar Chris Wilson
Browse files

drm/i915/selftests: Try to show where the pulse went

We have a case of a mysteriously absent pulse, so dump the engine
details to see if we can find out what happened to it.

References: https://bugs.freedesktop.org/show_bug.cgi?id=112405


Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191128102546.3857140-1-chris@chris-wilson.co.uk
parent cd30a503
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1479,6 +1479,8 @@ void intel_engine_dump(struct intel_engine_cs *engine,
		drm_printf(m, "*** WEDGED ***\n");

	drm_printf(m, "\tAwake? %d\n", atomic_read(&engine->wakeref.count));
	drm_printf(m, "\tBarriers?: %s\n",
		   yesno(!llist_empty(&engine->barrier_tasks)));

	rcu_read_lock();
	rq = READ_ONCE(engine->heartbeat.systole);
+5 −0
Original line number Diff line number Diff line
@@ -91,6 +91,11 @@ static int __live_idle_pulse(struct intel_engine_cs *engine,
	GEM_BUG_ON(!llist_empty(&engine->barrier_tasks));

	if (intel_gt_retire_requests_timeout(engine->gt, HZ / 5)) {
		struct drm_printer m = drm_err_printer("pulse");

		pr_err("%s: no heartbeat pulse?\n", engine->name);
		intel_engine_dump(engine, &m, "%s", engine->name);

		err = -ETIME;
		goto out;
	}