drm/sched: Add scheduler unit testing infrastructure and some basic tests
authorTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Mon, 24 Mar 2025 09:26:29 +0000 (09:26 +0000)
committerPhilipp Stanner <phasta@kernel.org>
Mon, 24 Mar 2025 09:41:52 +0000 (10:41 +0100)
commit5a99350794fec11faaed8a4b36a6931e696f672f
tree789f6d0d8082211d151d7cb04f5975bde39cc7ec
parent8e623137f112eb86ad949e3bcb6c0e5ae11a092a
drm/sched: Add scheduler unit testing infrastructure and some basic tests

Implement a mock scheduler backend and add some basic test to exercise the
core scheduler code paths.

Mock backend (kind of like a very simple mock GPU) can either process jobs
by tests manually advancing the "timeline" job at a time, or alternatively
jobs can be configured with a time duration in which case they get
completed asynchronously from the unit test code.

Core scheduler classes are subclassed to support this mock implementation.

The tests added are just a few simple submission patterns.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Suggested-by: Philipp Stanner <phasta@kernel.org>
Cc: Christian König <christian.koenig@amd.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Philipp Stanner <phasta@kernel.org>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Philipp Stanner <phasta@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20250324092633.49746-3-tvrtko.ursulin@igalia.com
drivers/gpu/drm/Kconfig.debug
drivers/gpu/drm/scheduler/.kunitconfig [new file with mode: 0644]
drivers/gpu/drm/scheduler/Makefile
drivers/gpu/drm/scheduler/tests/Makefile [new file with mode: 0644]
drivers/gpu/drm/scheduler/tests/mock_scheduler.c [new file with mode: 0644]
drivers/gpu/drm/scheduler/tests/sched_tests.h [new file with mode: 0644]
drivers/gpu/drm/scheduler/tests/tests_basic.c [new file with mode: 0644]