[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