[PATCH v5 0/4] Improve test coverage of TTM

Christian König christian.koenig at amd.com
Tue Oct 17 12:10:56 UTC 2023


Am 17.10.23 um 14:06 schrieb Karolina Stolarek:
> On 17.10.2023 13:57, Christian König wrote:
>>
>>
>> Am 17.10.23 um 13:22 schrieb Somalapuram, Amaranath:
>>>
>>> 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.
>>
>> No time for an in deep review, but I'm going to pick this up and push 
>> it to drm-misc-next.
>
> Oh! Could you at least take a look at ttm_bo_reserve_deadlock and/or 
> interrupted subtests? I'm not 100% sure if my solution is right.

Than this will have to wait till next week when I have some more time.

Christian.

>
> Many thanks,
> Karolina
>
>>
>> Thanks,
>> Christian.
>>
>>>
>>> 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