[PATCH i-g-t 1/2] Revert "tests/intel/xe_pm_residency: Add an assertion on MI_STORE execution time"

Ghimiray, Himal Prasad himal.prasad.ghimiray at intel.com
Tue Oct 8 03:47:14 UTC 2024



On 08-10-2024 08:52, Gupta, Anshuman wrote:
> 
> 
>> -----Original Message-----
>> From: Ghimiray, Himal Prasad <himal.prasad.ghimiray at intel.com>
>> Sent: Tuesday, October 8, 2024 8:44 AM
>> To: Gupta, Anshuman <anshuman.gupta at intel.com>; igt-
>> dev at lists.freedesktop.org
>> Cc: Brost, Matthew <matthew.brost at intel.com>; Nilawar, Badal
>> <badal.nilawar at intel.com>; Tauro, Riana <riana.tauro at intel.com>; Poosa,
>> Karthik <karthik.poosa at intel.com>
>> Subject: Re: [PATCH i-g-t 1/2] Revert "tests/intel/xe_pm_residency: Add an
>> assertion on MI_STORE execution time"
>>
>>
>>
>> On 08-10-2024 07:31, Gupta, Anshuman wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Ghimiray, Himal Prasad <himal.prasad.ghimiray at intel.com>
>>>> Sent: Monday, October 7, 2024 10:54 PM
>>>> To: igt-dev at lists.freedesktop.org
>>>> Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray at intel.com>; Brost,
>>>> Matthew <matthew.brost at intel.com>; Nilawar, Badal
>>>> <badal.nilawar at intel.com>; Tauro, Riana <riana.tauro at intel.com>;
>>>> Gupta, Anshuman <anshuman.gupta at intel.com>; Poosa, Karthik
>>>> <karthik.poosa at intel.com>
>>>> Subject: [PATCH i-g-t 1/2] Revert "tests/intel/xe_pm_residency: Add
>>>> an assertion on MI_STORE execution time"
>>>>
>>>> The reported time does not reflect the completion time of
>>>> MI_STORE_DWORD; instead, it accounts for the delay in the scheduler.
>>>> Therefore, it represents the time taken between xe_exec and syncobj_wait.
>>>    igt_assert(syncobj_wait(fd, &syncobj, 1, INT64_MAX, 0, NULL));
>>> elapsed = igt_nsec_elapsed(&tv); elapsed is taken right after the
>>> syncobj_wait() therefore it represent the time taken by xe_exec +
>> syncobj_wait, total time taken for completion of job.
>>> Thanks,
>>> Anshuman.
>>
>>
>> That's true, while writing "time taken between xe_exec and syncobj_wait"
>> , I meant to convey in between start of xe_exec and syncobj_wait completion.
>> Will rephrase commit message before pushing.
> Why do we want to remove assertion ? We don't want to write IGT to make CI happy it is to catch the bugs in KMD. Even in this case as well this is a bug from Linux Kernel.
> I don't agree with removal of assertion.

Few issues with this assertion.

1) IGT has --inactivity-timeout of 90 sec, which means you will not hit 
this assertion ever and SIGQUIT will be called if time between start of 
xe_exec and syncobj completion is ~0.9 sec.

2) Even 0.9 sec of delay is something huge for kernel. So why IGT 
assumes anything less than 1.2 sec is safe. Isn't it just to make 99% of 
idle time safe.

This assertion solves no purpose, if IGT silently passes for anything 
less than 1.2 sec, assume 1.1sec (Isn't it huge delay for wq submission).


BR
Himal


> Thanks,
> Anshuman.
>>
>> Thanks for pointing this.
>>
>> Himal
>>
>>
>>>>
>>>> This reverts commit 92825ed72be61c5419d95db944fef1c9dda2215a.
>>>>
>>>> Cc: Matthew Brost <matthew.brost at intel.com>
>>>> Cc: Badal Nilawar <badal.nilawar at intel.com>
>>>> Cc: Riana Tauro <riana.tauro at intel.com>
>>>> Cc: Anshuman Gupta <anshuman.gupta at intel.com>
>>>> Cc: Karthik Poosa <karthik.poosa at intel.com>
>>>> Signed-off-by: Himal Prasad Ghimiray
>>>> <himal.prasad.ghimiray at intel.com>
>>>> ---
>>>>    tests/intel/xe_pm_residency.c | 9 ---------
>>>>    1 file changed, 9 deletions(-)
>>>>
>>>> diff --git a/tests/intel/xe_pm_residency.c
>>>> b/tests/intel/xe_pm_residency.c index 772fe9b57..f4d05889c 100644
>>>> --- a/tests/intel/xe_pm_residency.c
>>>> +++ b/tests/intel/xe_pm_residency.c
>>>> @@ -144,15 +144,6 @@ static void exec_load(int fd, struct
>>>> drm_xe_engine_class_instance *hwe, unsigned
>>>>    			  1e-3 * submit,
>>>>    			  1e-3 * (elapsed - submit));
>>>>
>>>> -		/*
>>>> -		 * MI_STORE_DWORD generally completes within couple of
>>>> ms.
>>>> -		 * Assert if it takes more than 1.2 seconds, as it will cause
>>>> -		 * IGT test to timeout due to sleep of 120 seconds which is
>>>> -		 * the current per test timeout. Currently there is no way to
>>>> -		 * read this timeout from IGT test.
>>>> -		 */
>>>> -		igt_assert((uint64_t)elapsed < (uint64_t)(1.2 *
>>>> NSEC_PER_SEC));
>>>> -
>>>>    		syncobj_reset(fd, &syncobj, 1);
>>>>
>>>>    		/*
>>>> --
>>>> 2.34.1
>>>
> 



More information about the igt-dev mailing list