[igt-dev] [PATCH i-g-t] tests/i915/gem_ctx_exec: Skip test for RCS+CCS

Ewins, Jon jon.ewins at intel.com
Thu Dec 30 16:43:40 UTC 2021


On 12/29/2021 12:42 PM, Dixit, Ashutosh wrote:
> On Tue, 28 Dec 2021 23:52:39 -0800, <priyanka.dandamudi at intel.com> wrote:
>> From: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
>>
>> Updated the nohangcheck test to skip for DG2
>> as test fails when reset is applied for the RCS+CCS combination.
>>
>> Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
>> Cc: John Harrison <John.C.Harrison at Intel.com>
>> Cc: Melkaveri, Arjun <arjun.melkaveri at intel.com>
>> ---
>>   tests/i915/gem_ctx_exec.c | 14 ++++++++++++++
>>   1 file changed, 14 insertions(+)
>>
>> diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
>> index a1270a88..dbb46404 100644
>> --- a/tests/i915/gem_ctx_exec.c
>> +++ b/tests/i915/gem_ctx_exec.c
>> @@ -276,6 +276,9 @@ static void nohangcheck_hostile(int i915)
>> 	int err = 0;
>> 	int dir;
>> 	uint64_t ahnd;
>> +	bool rcs_found = false;
>> +	bool ccs_found = false;
>> +
> Extra newline.
>
>> 	/*
>> 	 * Even if the user disables hangcheck during their context,
>> @@ -293,6 +296,17 @@ static void nohangcheck_hostile(int i915)
>>
>> 	igt_require(__enable_hangcheck(dir, false));
>>
>> +	for_each_ctx_engine(i915, ctx, e) {
>> +		if(rcs_found && ccs_found)
> Need space before opening bracket (both "(" and "{"), everywhere.
>
>> +			break;
>> +		else if(e->class == I915_ENGINE_CLASS_RENDER && rcs_found == false){
> No need for rcs_found check.
>
>> +			rcs_found = true;
>> +			continue;
> No need for 'continue' since we have an "else if".
>
>> +		}
>> +		else if(e->class == I915_ENGINE_CLASS_COMPUTE && ccs_found == false)
> No need for ccs_found check.
>
>> +			ccs_found = true;
>> +	}
>> +	igt_require(!(rcs_found && ccs_found));
> This one I am not sure of. Do RCS + CCS have dependent resets only for
> particular products so that this check would unnecessarily skip on future
> products where such dependence may not exist? How has this been handled
> elsewhere?

The dependent reset are there on any platform with both CCS+RCS or 
multiple CCS.

However, DG2 has limitations relating to rcs and ccs context switching 
that other platforms with both rcs and ccs (e.g. ADL-P) do not have, 
therefore it is intended to use a DG2 specific skip where appropriate.
>> 	for_each_ctx_engine(i915, ctx, e) {
>> 		igt_spin_t *spin;
>> 		int new;
>> --
>> 2.25.1
>>


More information about the igt-dev mailing list