[PATCH v4 0/8] drm/amd/display: Introduce KUnit to Display Mode Library
Christian König
christian.koenig at amd.com
Mon Jan 29 15:26:20 UTC 2024
That we include so many C files with relative paths seems to be odd.
Apart from that looks good to me.
Christian.
Am 26.01.24 um 16:48 schrieb Rodrigo Siqueira:
> In 2022, we got a great patchset from a GSoC project introducing unit
> tests to the amdgpu display. Since version 3, this effort was put on
> hold, and now I'm attempting to revive it. I'll add part of the original
> cover letter at the bottom of this cover letter, but you can read all
> the original messages at:
>
> https://lore.kernel.org/amd-gfx/20220912155919.39877-1-mairacanal@riseup.net/
>
> Anyway, this new version changes are:
> - Rebase and adjust conflicts.
> - Rewrite part of the dc_dmub_srv_test to represent a real scenario that
> simulates some parameter configuration for using 4k144 and 4k240
> displays.
>
> Thanks
> Siqueira
>
> Original cover letter
>
> Hello,
>
> This series is version 3 of the introduction of unit testing to the
> AMDPGU driver [1].
>
> Our main goal is to bring unit testing to the AMD display driver; in
> particular, we'll focus on the Display Mode Library (DML) for DCN2.0,
> DMUB, and some of the DCE functions. This implementation intends to
> help developers to recognize bugs before they are merged into the
> mainline and also makes it possible for future code refactors of the
> AMD display driver.
>
> For the implementation of the tests, we decided to go with the Kernel
> Unit Testing Framework (KUnit). KUnit makes it possible to run test
> suites on kernel boot or load the tests as a module. It reports all test
> case results through a TAP (Test Anything Protocol) in the kernel log.
> Moreover, KUnit unifies the test structure and provides tools to
> simplify the testing for developers and CI systems.
>
> In regards to CI pipelines, we believe kunit_tool [2] provides
> ease of use, but we are also working on integrating KUnit into IGT [3].
>
> Since the second version, we've chosen a mix of approaches to integrate
> KUnit tests into amdgpu:
> 1. Tests that use static functions are included through guards [4].
> 2. Tests without static functions are included through a Makefile.
>
> We understand that testing static functions is not ideal, but taking into
> consideration that this driver relies heavily on static functions with
> complex behavior which would benefit from unit testing, otherwise, black-box
> tested through public functions with dozens of arguments and sometimes high
> cyclomatic complexity.
>
> The first seven patches represent what we intend to do for the rest of the
> DML modules: systematic testing of the DML functions, especially mathematically
> complicated functions. Also, it shows how simple it is to add new tests to the DML.
>
> Among the tests, we highlight the dcn20_fpu_test, which, had it existed
> then, could catch the defects introduced to dcn20_fpu.c by 8861c27a6c [5]
> later fixed by 9ad5d02c2a [6].
>
> In this series, there's also an example of how unit tests can help avoid
> regressions and keep track of changes in behavior.
>
> [..]
>
> Isabella Basso (1):
> drm/amd/display: Introduce KUnit tests to display_rq_dlg_calc_20
>
> Magali Lemes (1):
> drm/amd/display: Introduce KUnit tests for dcn20_fpu
>
> Maíra Canal (5):
> drm/amd/display: Introduce KUnit tests to the bw_fixed library
> drm/amd/display: Introduce KUnit tests to the display_mode_vba library
> drm/amd/display: Introduce KUnit to dcn20/display_mode_vba_20 library
> drm/amd/display: Introduce KUnit tests to dc_dmub_srv library
> Documentation/gpu: Add Display Core Unit Test documentation
>
> Tales Aparecida (1):
> drm/amd/display: Introduce KUnit tests for fixed31_32 library
>
> .../gpu/amdgpu/display/display-test.rst | 88 ++
> Documentation/gpu/amdgpu/display/index.rst | 1 +
> drivers/gpu/drm/amd/display/Kconfig | 52 +
> drivers/gpu/drm/amd/display/Makefile | 2 +-
> drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 4 +
> .../dc/dml/dcn20/display_mode_vba_20.c | 4 +
> .../dc/dml/dcn20/display_rq_dlg_calc_20.c | 4 +
> drivers/gpu/drm/amd/display/tests/Makefile | 18 +
> .../display/tests/dc/basics/fixpt31_32_test.c | 232 +++++
> .../amd/display/tests/dc/dc_dmub_srv_test.c | 159 ++++
> .../tests/dc/dml/calcs/bw_fixed_test.c | 323 +++++++
> .../tests/dc/dml/dcn20/dcn20_fpu_test.c | 561 +++++++++++
> .../dc/dml/dcn20/display_mode_vba_20_test.c | 888 ++++++++++++++++++
> .../dml/dcn20/display_rq_dlg_calc_20_test.c | 124 +++
> .../tests/dc/dml/display_mode_vba_test.c | 741 +++++++++++++++
> 15 files changed, 3200 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/gpu/amdgpu/display/display-test.rst
> create mode 100644 drivers/gpu/drm/amd/display/tests/Makefile
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/basics/fixpt31_32_test.c
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/dc_dmub_srv_test.c
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/dml/calcs/bw_fixed_test.c
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/dml/dcn20/dcn20_fpu_test.c
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/dml/dcn20/display_mode_vba_20_test.c
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/dml/dcn20/display_rq_dlg_calc_20_test.c
> create mode 100644 drivers/gpu/drm/amd/display/tests/dc/dml/display_mode_vba_test.c
>
More information about the amd-gfx
mailing list