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@xxxxxxx> 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@xxxxxxx> > > Tested-by: Alex Sierra <alex.sierra@xxxxxxx> > > Signed-off-by: Philip Yang <Philip.Yang@xxxxxxx> > > Signed-off-by: Felix Kuehling <felix.kuehling@xxxxxxx> > > 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@xxxxxxx> > > > > --- > > 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);