Re: [PATCH v3 0/5] DRM scheduler kunit tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 04.03.25 um 14:10 schrieb Tvrtko Ursulin:
> There has repeatedly been quite a bit of apprehension when any change to the DRM
> scheduler is proposed, with two main reasons being code base is considered
> fragile, not well understood and not very well documented, and secondly the lack
> of systematic testing outside the vendor specific tests suites and/or test
> farms.
>
> This series is an attempt to dislodge this status quo by adding some unit tests
> using the kunit framework.
>
> General approach is that there is a mock "hardware" backend which can be
> controlled from tests, which in turn allows exercising various scheduler code
> paths.
>
> Only some simple basic tests get added in the series and hopefully it is easy to
> understand what tests are doing.
>
> An obligatory "screenshot" for reference:
>
> [14:29:37] ============ drm_sched_basic_tests (3 subtests) ============
> [14:29:38] [PASSED] drm_sched_basic_submit
> [14:29:38] ================== drm_sched_basic_test  ===================
> [14:29:38] [PASSED] A queue of jobs in a single entity
> [14:29:38] [PASSED] A chain of dependent jobs across multiple entities
> [14:29:38] [PASSED] Multiple independent job queues
> [14:29:38] [PASSED] Multiple inter-dependent job queues
> [14:29:38] ============== [PASSED] drm_sched_basic_test ===============
> [14:29:38] [PASSED] drm_sched_basic_entity_cleanup
> [14:29:38] ============== [PASSED] drm_sched_basic_tests ==============
> [14:29:38] ======== drm_sched_basic_timeout_tests (1 subtest) =========
> [14:29:40] [PASSED] drm_sched_basic_timeout
> [14:29:40] ========== [PASSED] drm_sched_basic_timeout_tests ==========
> [14:29:40] ======= drm_sched_basic_priority_tests (2 subtests) ========
> [14:29:42] [PASSED] drm_sched_priorities
> [14:29:42] [PASSED] drm_sched_change_priority
> [14:29:42] ========= [PASSED] drm_sched_basic_priority_tests ==========
> [14:29:42] ====== drm_sched_basic_modify_sched_tests (1 subtest) ======
> [14:29:43] [PASSED] drm_sched_test_modify_sched
> [14:29:43] ======= [PASSED] drm_sched_basic_modify_sched_tests ========
> [14:29:43] ============================================================
> [14:29:43] Testing complete. Ran 10 tests: passed: 10
> [14:29:43] Elapsed time: 13.330s total, 0.001s configuring, 4.005s building, 9.276s running
>
> v2:
>  * Parameterize a bunch of similar tests.
>  * Improve test commentary.
>  * Rename TDR test to timeout. (Christian)
>  * Improve quality and consistency of naming. (Philipp)
>
> RFC v2 -> series v1:
>  * Rebased for drm_sched_init changes.
>  * Fixed modular build.
>  * Added some comments.
>  * Filename renames. (Philipp)
>
> v2:
>  * Dealt with a bunch of checkpatch warnings.
>
> v3:
>  * Some mock API renames, kerneldoc grammar fixes and indentation fixes.
>
> Cc: Christian König <christian.koenig@xxxxxxx>
> Cc: Danilo Krummrich <dakr@xxxxxxxxxx>
> Cc: Matthew Brost <matthew.brost@xxxxxxxxx>
> Cc: Philipp Stanner <phasta@xxxxxxxxxx>

Acked-by: Christian König <christian.koenig@xxxxxxx> for the whole series.

>
> Tvrtko Ursulin (5):
>   drm: Move some options to separate new Kconfig
>   drm/scheduler: Add scheduler unit testing infrastructure and some
>     basic tests
>   drm/scheduler: Add a simple timeout test
>   drm/scheduler: Add basic priority tests
>   drm/scheduler: Add a basic test for modifying entities scheduler list
>
>  drivers/gpu/drm/Kconfig                       | 109 +----
>  drivers/gpu/drm/Kconfig.debug                 | 115 +++++
>  drivers/gpu/drm/scheduler/.kunitconfig        |  12 +
>  drivers/gpu/drm/scheduler/Makefile            |   2 +
>  drivers/gpu/drm/scheduler/tests/Makefile      |   7 +
>  .../gpu/drm/scheduler/tests/mock_scheduler.c  | 323 +++++++++++++
>  drivers/gpu/drm/scheduler/tests/sched_tests.h | 223 +++++++++
>  drivers/gpu/drm/scheduler/tests/tests_basic.c | 426 ++++++++++++++++++
>  8 files changed, 1113 insertions(+), 104 deletions(-)
>  create mode 100644 drivers/gpu/drm/Kconfig.debug
>  create mode 100644 drivers/gpu/drm/scheduler/.kunitconfig
>  create mode 100644 drivers/gpu/drm/scheduler/tests/Makefile
>  create mode 100644 drivers/gpu/drm/scheduler/tests/mock_scheduler.c
>  create mode 100644 drivers/gpu/drm/scheduler/tests/sched_tests.h
>  create mode 100644 drivers/gpu/drm/scheduler/tests/tests_basic.c
>




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux