[PATCH] drm/amdkfd: avoid svm dump when dynamic debug disabled

Felix Kuehling felix.kuehling at amd.com
Thu Aug 3 19:43:04 UTC 2023


Is your kernel configured without dynamic debugging? Maybe we need to 
wrap this in some #if defined(CONFIG_DYNAMIC_DEBUG_CORE).

Regards,
   Felix


Am 2023-08-03 um 15:38 schrieb Mike Lothian:
> Hi
>
> I'm seeing a compiler failure with Clang 16
>
>    CC      drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.o
> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:3568:2: error: call to
> undeclared function '_dynamic_func_call_no_desc'; ISO C99 and later do
> not support implicit function declarations
> [-Wimplicit-function-declaration]
>         dynamic_svm_range_dump(svms);
>         ^
> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:50:2: note: expanded
> from macro 'dynamic_svm_range_dump'
>         _dynamic_func_call_no_desc("svm_range_dump", svm_range_debug_dump, svms)
>         ^
> 1 error generated.
>
> Cheers
>
> Mike
>
> On Wed, 19 Jul 2023 at 22:27, Felix Kuehling <felix.kuehling at amd.com> wrote:
>> Am 2023-07-19 um 17:22 schrieb Alex Sierra:
>>> Set dynamic_svm_range_dump macro to avoid iterating over SVM lists
>>> from svm_range_debug_dump when dynamic debug is disabled. Otherwise,
>>> it could drop performance, specially with big number of SVM ranges.
>>> Make sure both svm_range_set_attr and svm_range_debug_dump functions
>>> are dynamically enabled to print svm_range_debug_dump debug traces.
>>>
>>> Signed-off-by: Alex Sierra <alex.sierra at amd.com>
>>> Tested-by: Alex Sierra <alex.sierra at amd.com>
>>> Signed-off-by: Philip Yang <Philip.Yang at amd.com>
>>> Signed-off-by: Felix Kuehling <felix.kuehling at amd.com>
>> I don't think my name on a Signed-off-by is appropriate here. I didn't
>> write the patch. And I'm not submitting it. However, the patch is
>>
>> Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>
>>
>>
>>> ---
>>>    drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 4 +++-
>>>    1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>>> index 479c4f66afa7..1b50eae051a4 100644
>>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
>>> @@ -46,6 +46,8 @@
>>>     * page table is updated.
>>>     */
>>>    #define AMDGPU_SVM_RANGE_RETRY_FAULT_PENDING        (2UL * NSEC_PER_MSEC)
>>> +#define dynamic_svm_range_dump(svms) \
>>> +     _dynamic_func_call_no_desc("svm_range_dump", svm_range_debug_dump, svms)
>>>
>>>    /* Giant svm range split into smaller ranges based on this, it is decided using
>>>     * minimum of all dGPU/APU 1/32 VRAM size, between 2MB to 1GB and alignment to
>>> @@ -3563,7 +3565,7 @@ svm_range_set_attr(struct kfd_process *p, struct mm_struct *mm,
>>>                        break;
>>>        }
>>>
>>> -     svm_range_debug_dump(svms);
>>> +     dynamic_svm_range_dump(svms);
>>>
>>>        mutex_unlock(&svms->lock);
>>>        mmap_read_unlock(mm);


More information about the amd-gfx mailing list