[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