[PATCH I-G-T v4] tests/intel/i915_hangman: Fix spin engine hang

Krzysztof Karas krzysztof.karas at intel.com
Tue Dec 17 11:23:46 UTC 2024


Hi Mikolaj,

> > >  	for_each_ctx_engine(device, ctx, other) {
> > > +		/* Wa_14014494547:DG2 */
> > > +		if (IS_DG2(intel_get_drm_devid(device)) && is_rcs_ccs(other))
> 
> The test fails when both rcs and css engines run in parallel.
> What I overlooked in first patch version, was case when both of 
> them are running as background spins (initiated exactly in loop above).
> So now the test passes not only when one of the engines is tested one,
> but also when the other ones are tested.
> 
> > In previous version of this patch there were also checks to confirm
> > that:
> > 1) the current engine is one of the two types,
> 
> Current engine doesn't matter now because even if we run test on rcs or
> ccs, we will know for sure that the other one won't run in background.
So the idea here is just to disable running rcs/ccs in background for
all engines?

> The tested engine is run later in the test and not in this loop.
Does that mean rcs/ccs will always be tested separately?

> > 2) the engines are different.
> 
> Cc: Andi
> 
> This I'd like Andi to comment on. What this check did, was that it
> allowed for tested engine to have both frozen spin and normal
> background spin. Do you think that this background spin should
> still be run or is it negligible?
In that case testing e == other makes sense. Thanks for explaining.

Krzysztof
> 
> Mikołaj
> 
> > 
> > > +			continue;
> > > +
> > >  		local_ctx[num_ctx] = intel_ctx_create(device, &ctx->cfg);
> > >  		context_unban(device, local_ctx[num_ctx]->id);
> > >  		ahndN = get_reloc_ahnd(device, local_ctx[num_ctx]->id);
> > > -- 
> > > 2.47.1
> > > 


More information about the igt-dev mailing list