From: John Harrison <John.C.Harrison@xxxxxxxxx> As opposed to only on the non-target engines. This means that there is some other workload present for the scheduler to switch between and so detet the hang immediately. Signed-off-by: John Harrison <John.C.Harrison@xxxxxxxxx> Reviewed-by: Matthew Brost <matthew.brost@xxxxxxxxx> --- tests/i915/i915_hangman.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c index 24087931c..a1aeeba6d 100644 --- a/tests/i915/i915_hangman.c +++ b/tests/i915/i915_hangman.c @@ -298,12 +298,14 @@ test_engine_hang(const intel_ctx_t *ctx, igt_skip_on(flags & IGT_SPIN_INVALID_CS && gem_engine_has_cmdparser(device, &ctx->cfg, e->flags)); - /* Fill all the other engines with background load */ + /* + * Fill all engines with background load. + * This verifies that independent engines are unaffected and gives + * the target engine something to switch between so it notices the + * hang. + */ num_ctx = 0; for_each_ctx_engine(device, ctx, other) { - if (other->flags == e->flags) - continue; - local_ctx[num_ctx] = intel_ctx_create(device, &ctx->cfg); ahndN = get_reloc_ahnd(device, local_ctx[num_ctx]->id); spin = __igt_spin_new(device, -- 2.25.1