[PATCH v3 3/8] drm/sched: Make timeout KUnit tests faster

Maíra Canal mcanal at igalia.com
Mon Jun 30 12:05:31 UTC 2025


Hi Philipp,

On 30/06/25 08:53, Philipp Stanner wrote:
> On Wed, 2025-06-18 at 11:47 -0300, Maíra Canal wrote:
>> As more KUnit tests are introduced to evaluate the basic capabilities
>> of
>> the `timedout_job()` hook, the test suite will continue to increase
>> in
>> duration. To reduce the overall running time of the test suite,
>> decrease
>> the scheduler's timeout for the timeout tests.
>>
>> Before this commit:
>>
>> [15:42:26] Elapsed time: 15.637s total, 0.002s configuring, 10.387s
>> building, 5.229s running
>>
>> After this commit:
>>
>> [15:45:26] Elapsed time: 9.263s total, 0.002s configuring, 5.168s
>> building, 4.037s running
> 
> I guess those times were measured with the entire series?

No, they were measured without the new test that I introduced in the
next patch.

> 
> It's not clear to me whether this patch is independent from the series.
> I suppose it is. We should aim towards having series's narrowly focused
> topic-wise, but I get why you included it here.

 From my perspective, this patch is a preparation to the next one. As
I'll introduce another timeout-related test in the next patch, I was
trying to ensure that we will keep the time-budget reasonable.

> 
> That said, is there a specific reason for you aiming at ~10s (9.263)?
> That's only a bit faster than the 15.637.
> 

Actually, the only thing that this patch affects is the runtime. So, it
went from 5.229s to 4.037s (-22.8%). However, as we add more and more
timeout tests, the absolute difference would get more significant.

> Couldn't it make sense, as you're at it already, to speed this up to
> just a few seconds, like 3-5? Then it should really be quiet IRW that
> topic for a while.

I believe that further decreasing the timeout could lead to racy
scenarios and flaky tests.

Best Regards,
- Maíra

> 
> 
> P.
> 
>>
>> Signed-off-by: Maíra Canal <mcanal at igalia.com>
>> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>> ---
>>   drivers/gpu/drm/scheduler/tests/tests_basic.c | 8 +++++---
>>   1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/scheduler/tests/tests_basic.c
>> b/drivers/gpu/drm/scheduler/tests/tests_basic.c
>> index
>> 7230057e0594c6246f02608f07fcb1f8d738ac75..41c648782f4548e202bd8711b45
>> d28eead9bd0b2 100644
>> --- a/drivers/gpu/drm/scheduler/tests/tests_basic.c
>> +++ b/drivers/gpu/drm/scheduler/tests/tests_basic.c
>> @@ -5,6 +5,8 @@
>>   
>>   #include "sched_tests.h"
>>   
>> +#define MOCK_TIMEOUT (HZ / 5)
>> +
>>   /*
>>    * DRM scheduler basic tests should check the basic functional
>> correctness of
>>    * the scheduler, including some very light smoke testing. More
>> targeted tests,
>> @@ -28,7 +30,7 @@ static void drm_sched_basic_exit(struct kunit
>> *test)
>>   
>>   static int drm_sched_timeout_init(struct kunit *test)
>>   {
>> -	test->priv = drm_mock_sched_new(test, HZ);
>> +	test->priv = drm_mock_sched_new(test, MOCK_TIMEOUT);
>>   
>>   	return 0;
>>   }
>> @@ -227,14 +229,14 @@ static void drm_sched_basic_timeout(struct
>> kunit *test)
>>   	done = drm_mock_sched_job_wait_scheduled(job, HZ);
>>   	KUNIT_ASSERT_TRUE(test, done);
>>   
>> -	done = drm_mock_sched_job_wait_finished(job, HZ / 2);
>> +	done = drm_mock_sched_job_wait_finished(job, MOCK_TIMEOUT /
>> 2);
>>   	KUNIT_ASSERT_FALSE(test, done);
>>   
>>   	KUNIT_ASSERT_EQ(test,
>>   			job->flags & DRM_MOCK_SCHED_JOB_TIMEDOUT,
>>   			0);
>>   
>> -	done = drm_mock_sched_job_wait_finished(job, HZ);
>> +	done = drm_mock_sched_job_wait_finished(job, MOCK_TIMEOUT);
>>   	KUNIT_ASSERT_FALSE(test, done);
>>   
>>   	KUNIT_ASSERT_EQ(test,
>>
> 



More information about the dri-devel mailing list