Commit 1db257c5 authored by Chris Wilson's avatar Chris Wilson

drm/i915/selftests: Assert that the idle_pulse is sent

When checking the heartbeat pulse, we expect it to have been sent by the
time we have slept. We can verify this by checking the engine serial
number to see if that matches the predicted pulse serial. It will always
be true if, and only if, the pulse was sent by itself (as designed by
the test).
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/20191031094259.23028-1-chris@chris-wilson.co.uk
parent 29b27657
...@@ -97,6 +97,8 @@ static int __live_idle_pulse(struct intel_engine_cs *engine, ...@@ -97,6 +97,8 @@ static int __live_idle_pulse(struct intel_engine_cs *engine,
goto out; goto out;
} }
GEM_BUG_ON(READ_ONCE(engine->serial) != engine->wakeref_serial);
pulse_unlock_wait(p); /* synchronize with the retirement callback */ pulse_unlock_wait(p); /* synchronize with the retirement callback */
if (!i915_active_is_idle(&p->active)) { if (!i915_active_is_idle(&p->active)) {
...@@ -337,7 +339,7 @@ int intel_heartbeat_live_selftests(struct drm_i915_private *i915) ...@@ -337,7 +339,7 @@ int intel_heartbeat_live_selftests(struct drm_i915_private *i915)
saved_hangcheck = i915_modparams.enable_hangcheck; saved_hangcheck = i915_modparams.enable_hangcheck;
i915_modparams.enable_hangcheck = INT_MAX; i915_modparams.enable_hangcheck = INT_MAX;
err = intel_gt_live_subtests(tests, &i915->gt); err = intel_gt_live_subtests(tests, &i915->gt);
i915_modparams.enable_hangcheck = saved_hangcheck; i915_modparams.enable_hangcheck = saved_hangcheck;
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment