[PATCH v5 0/4] Improve test coverage of TTM
Somalapuram, Amaranath
asomalap at amd.com
Tue Oct 17 11:22:53 UTC 2023
On 10/17/2023 4:35 PM, Karolina Stolarek wrote:
> Hi Amaranath,
>
> On 16.10.2023 15:08, Somalapuram, Amaranath wrote:
>>
>> On 10/16/2023 2:22 PM, Karolina Stolarek wrote:
>>> Add tests for building blocks of the TTM subsystem, such as
>>> ttm_resource,
>>> ttm_resource_manager, ttm_tt and ttm_buffer_object. This series covers
>>> basic functions such as initialization, allocation and clean-up of each
>>> struct. Testing of ttm_buffer_object also includes locking and
>>> unlocking
>>> the object for validation, with special scenarios such as an
>>> interrupted
>>> wait or deadlock.
>>>
>>> Some of the test cases check the bulk move mechanism and how it
>>> interacts
>>> with pinned buffers. This is to be seen if we want to add dedicated
>>> testing
>>> for bulk move or not. The resource allocation subtests use
>>> ttm_sys_manager
>>> for now. Resources that don't use system memory will be indirectly
>>> tested
>>> via tests for ttm_bo_validate()/ttm_bo_init_validate(), using a mock
>>> resource manager.
>>>
>>> Use kunit_tool script to manually run all the tests:
>>>
>>> $ ./tools/testing/kunit/kunit.py run
>>> --kunitconfig=drivers/gpu/drm/ttm/tests
>>>
>>> To build a kernel with TTM KUnit tests, first enable CONFIG_KUNIT, and
>>> then CONFIG_DRM_TTM_KUNIT_TEST.
>> Tested [PATCH v4 0/4] Improve test coverage of TTM patches on AMD
>> platform, looks good.
>
> Many thanks for taking a look.
>
> Do I understand correctly that your Tested-by would apply to all the
> patches here?
>
Yes, I have tested all the 4 patches together.
Regards,
S.Amarnath
> All the best,
> Karolina
>
>>
>> Regards,
>> S.Amarnath
>>> Many thanks,
>>> Karolina
>>>
>>> v5:
>>> - Actually use the page_flags parameter in ttm_tt_simple_create()
>>>
>>> v4:
>>> - First unreserve the object before calling ww_acquire_fini() in
>>> ttm_bo_reserve_double_resv subtest
>>> - Silence lockdep in ttm_bo_reserve_deadlock subtest (open to
>>> suggestions
>>> how to fix it in a different way)
>>> - Use a genuine GEM object in ttm_buffer_object instead of an
>>> empty one
>>>
>>> v3:
>>> - Instead of modifying the main TTM Makefile, use
>>> EXPORT_SYMBOL_FOR_TESTS_ONLY() macro for symbols that are
>>> tested but
>>> not widely exported. Thanks to this change, TTM tests can be built
>>> as modules, even when non-exported functions are used
>>> - Change the description of a patch that fixes
>>> ttm_pool_pre_populated()
>>>
>>> v2:
>>> - Remove Makefile for KUnit tests and move the definitions to the
>>> TTM's one
>>> - Switch on CONFIG_DRM_TTM_KUNIT_TEST=m so the tests and TTM module
>>> are built as one. This allows building the tests as a module, even
>>> if it uses functions that are not exported
>>> - Fix ttm_pool_pre_populated(); a wrong flag was passed to
>>> ttm_tt_kunit_init() function
>>>
>>> Karolina Stolarek (4):
>>> drm/ttm/tests: Add tests for ttm_resource and ttm_sys_man
>>> drm/ttm/tests: Add tests for ttm_tt
>>> drm/ttm/tests: Add tests for ttm_bo functions
>>> drm/ttm/tests: Fix argument in ttm_tt_kunit_init()
>>>
>>> drivers/gpu/drm/ttm/tests/Makefile | 3 +
>>> drivers/gpu/drm/ttm/tests/ttm_bo_test.c | 619
>>> ++++++++++++++++++
>>> drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c | 51 +-
>>> drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.h | 4 +
>>> drivers/gpu/drm/ttm/tests/ttm_pool_test.c | 3 +-
>>> drivers/gpu/drm/ttm/tests/ttm_resource_test.c | 335 ++++++++++
>>> drivers/gpu/drm/ttm/tests/ttm_tt_test.c | 295 +++++++++
>>> drivers/gpu/drm/ttm/ttm_resource.c | 3 +
>>> drivers/gpu/drm/ttm/ttm_tt.c | 3 +
>>> 9 files changed, 1313 insertions(+), 3 deletions(-)
>>> create mode 100644 drivers/gpu/drm/ttm/tests/ttm_bo_test.c
>>> create mode 100644 drivers/gpu/drm/ttm/tests/ttm_resource_test.c
>>> create mode 100644 drivers/gpu/drm/ttm/tests/ttm_tt_test.c
>>>
More information about the dri-devel
mailing list