mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Philipp Stanner <phasta@mailbox.org>
To: David Gow <david@davidgow.net>,
	Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: "Christian König" <christian.koenig@amd.com>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Matthew Brost" <matthew.brost@intel.com>,
	"Philipp Stanner" <phasta@kernel.org>,
	"Pierre-Eric Pelloux-Prayer" <pierre-eric.pelloux-prayer@amd.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	kernel-dev@igalia.com, kunit-dev@googlegroups.com,
	"Marco Pagani" <marpagan@redhat.com>
Subject: Re: [PATCH] drm/sched: Increase drm_mock_sched_job_wait_finished timeout when CONFIG_HZ=100
Date: Mon, 14 Sep 2026 11:03:41 +0200	[thread overview]
Message-ID: <4357c0bd2a78e88b49b7375bc18d1116df3275b6.camel@mailbox.org> (raw)
In-Reply-To: <20260913084155.520015-2-david@davidgow.net>

+Cc Marco

On Sun, 2026-09-13 at 16:41 +0800, David Gow wrote:
> The drm_sched_scheduler_overhead_tests tests hardcode a timeout of 5x
> total_us, and fail if it's exceeded. However, on systems with
> CONFIG_HZ < 250, this tends to fail.
> 
> As it's possible to configure many architectures to use 100 Hz (and some,
> such as UML, hardcode CONFIG_HZ=100), increase the timeout so that the test
> doesn't fail on these configurations.
> 
> Fixes: 97ef806a5314 ("drm/sched: Add some scheduling quality unit tests")
> Signed-off-by: David Gow <david@davidgow.net>
> ---
> 
> This failure showed up on UML when testing the addition of CONFIG_DRM to
> the KUnit 'alltests' config[1]. Ideally, I'd like to see this test fixed
> (or at least skipped/disabled) on these broken configurations so that the
> alltests run is clean. (I don't actually run any CONFIG_HZ=100 configs
> other than UML, but fixing them all is ideal if we can manage it.)
> 
> If you'd rather a different implementation / magic number, let me know.
> I picked 15 here as it gave me plenty of leeway: 10 worked most, but not
> all, of the time under i386 qemu w/ CONFIG_HZ_100, and was fine with UML
> on this machine.
> 
> Thanks,
> -- David

Thx for the patch. Where are you running the tests and what for, is it
a CI or other test system?


So one thing about the unit tests is that they were originally not so
much intended for being run on all sorts of CIs, but as a development
tool for the drm_sched devs to have something to move forward with.
That's in part why they contain "scheduling quality tests".

That caused some raised eyebrows already because people run these
lengthy tests in CIs.

Maybe what we actually should have is a split of the test suite into
two parts, where one part covers basic sanity, and the other measures
scheduling behavior. The former could then be run by CI folks, the
latter explicitly be discouraged from being run by anyone who is not a
drm_sched-developer.


P.

> 
> [1]: https://lore.kernel.org/all/20260911-kunit-drm-v1-1-c5c0f18fc7b0@kernel.org/
> ---
>  drivers/gpu/drm/scheduler/tests/tests_scheduler.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/scheduler/tests/tests_scheduler.c b/drivers/gpu/drm/scheduler/tests/tests_scheduler.c
> index 285546a2218f..02c83b5c2189 100644
> --- a/drivers/gpu/drm/scheduler/tests/tests_scheduler.c
> +++ b/drivers/gpu/drm/scheduler/tests/tests_scheduler.c
> @@ -13,6 +13,13 @@
>   * logic.
>   */
>  
> +/* We need a more generous timeout when CONFIG_HZ=100. */
> +#if CONFIG_HZ < 250
> +#define TIMEOUT_MULTIPLIER 15
> +#else
> +#define TIMEOUT_MULTIPLIER 5
> +#endif
> +
>  static int drm_sched_scheduler_init(struct kunit *test)
>  {
>  	struct drm_mock_scheduler *sched;
> @@ -88,7 +95,7 @@ static void drm_sched_scheduler_queue_overhead(struct kunit *test)
>  
>  	/* Wait with a safe margin to avoid every failing. */
>  	done = drm_mock_sched_job_wait_finished(job,
> -						usecs_to_jiffies(total_us) * 5);
> +						usecs_to_jiffies(total_us) * TIMEOUT_MULTIPLIER);
>  	end = ktime_get();
>  	KUNIT_ASSERT_TRUE(test, done);
>  
> @@ -149,7 +156,7 @@ static void drm_sched_scheduler_ping_pong(struct kunit *test)
>  
>  	/* Wait with a safe margin to avoid every failing. */
>  	done = drm_mock_sched_job_wait_finished(job,
> -						usecs_to_jiffies(total_us) * 5);
> +						usecs_to_jiffies(total_us) * TIMEOUT_MULTIPLIER);
>  	end = ktime_get();
>  	KUNIT_ASSERT_TRUE(test, done);
>  
		

  parent reply	other threads:[~2026-09-14  9:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-13  8:41 David Gow
2026-09-14  8:49 ` Tvrtko Ursulin
2026-09-14 10:06   ` David Gow
2026-09-14 11:21     ` Tvrtko Ursulin
2026-09-14 11:48       ` Philipp Stanner
2026-09-14 12:12         ` Tvrtko Ursulin
2026-09-14 13:33           ` David Gow
2026-09-14  9:03 ` Philipp Stanner [this message]
2026-09-14 10:07   ` David Gow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4357c0bd2a78e88b49b7375bc18d1116df3275b6.camel@mailbox.org \
    --to=phasta@mailbox.org \
    --cc=christian.koenig@amd.com \
    --cc=dakr@kernel.org \
    --cc=david@davidgow.net \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kernel-dev@igalia.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marpagan@redhat.com \
    --cc=matthew.brost@intel.com \
    --cc=phasta@kernel.org \
    --cc=pierre-eric.pelloux-prayer@amd.com \
    --cc=tvrtko.ursulin@igalia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®