[PATCH 09/34] drm/amdkfd: map svm range to GPUs
kernel test robot
lkp at intel.com
Thu Apr 1 13:28:18 UTC 2021
Hi Felix,
I love your patch! Perhaps something to improve:
[auto build test WARNING on next-20210331]
[cannot apply to drm-intel/for-linux-next drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master drm/drm-next v5.12-rc5 v5.12-rc4 v5.12-rc3 v5.12-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Felix-Kuehling/Add-HMM-based-SVM-memory-manager-to-KFD-v3/20210401-122712
base: 7a43c78d0573e0bbbb0456b033e2b9a895b89464
config: x86_64-randconfig-a011-20210401 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/bb9c90022dd6afd456d4b40a20d007e57efc35ed
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Felix-Kuehling/Add-HMM-based-SVM-memory-manager-to-KFD-v3/20210401-122712
git checkout bb9c90022dd6afd456d4b40a20d007e57efc35ed
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:167:6: warning: no previous prototype for 'svm_range_dma_unmap' [-Wmissing-prototypes]
167 | void svm_range_dma_unmap(struct device *dev, dma_addr_t *dma_addr,
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:599:6: warning: no previous prototype for 'svm_range_add_child' [-Wmissing-prototypes]
599 | void svm_range_add_child(struct svm_range *prange, struct mm_struct *mm,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:795:5: warning: no previous prototype for 'svm_range_reserve_bos' [-Wmissing-prototypes]
795 | int svm_range_reserve_bos(struct svm_validate_context *ctx)
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:849:6: warning: no previous prototype for 'svm_range_unreserve_bos' [-Wmissing-prototypes]
849 | void svm_range_unreserve_bos(struct svm_validate_context *ctx)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:967:19: warning: no previous prototype for 'svm_range_clone' [-Wmissing-prototypes]
967 | struct svm_range *svm_range_clone(struct svm_range *old)
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:1222:1: warning: no previous prototype for 'svm_range_add_list_work' [-Wmissing-prototypes]
1222 | svm_range_add_list_work(struct svm_range_list *svms, struct svm_range *prange,
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:1244:6: warning: no previous prototype for 'schedule_deferred_list_work' [-Wmissing-prototypes]
1244 | void schedule_deferred_list_work(struct svm_range_list *svms)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/svm_range_reserve_bos +795 drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c
794
> 795 int svm_range_reserve_bos(struct svm_validate_context *ctx)
796 {
797 struct kfd_process_device *pdd;
798 struct amdgpu_device *adev;
799 struct amdgpu_vm *vm;
800 uint32_t gpuidx;
801 int r;
802
803 INIT_LIST_HEAD(&ctx->validate_list);
804 for_each_set_bit(gpuidx, ctx->bitmap, MAX_GPU_INSTANCE) {
805 pdd = kfd_process_device_from_gpuidx(ctx->process, gpuidx);
806 if (!pdd) {
807 pr_debug("failed to find device idx %d\n", gpuidx);
808 return -EINVAL;
809 }
810 adev = (struct amdgpu_device *)pdd->dev->kgd;
811 vm = pdd->vm;
812
813 ctx->tv[gpuidx].bo = &vm->root.base.bo->tbo;
814 ctx->tv[gpuidx].num_shared = 4;
815 list_add(&ctx->tv[gpuidx].head, &ctx->validate_list);
816 }
817
818 r = ttm_eu_reserve_buffers(&ctx->ticket, &ctx->validate_list,
819 ctx->intr, NULL);
820 if (r) {
821 pr_debug("failed %d to reserve bo\n", r);
822 return r;
823 }
824
825 for_each_set_bit(gpuidx, ctx->bitmap, MAX_GPU_INSTANCE) {
826 pdd = kfd_process_device_from_gpuidx(ctx->process, gpuidx);
827 if (!pdd) {
828 pr_debug("failed to find device idx %d\n", gpuidx);
829 r = -EINVAL;
830 goto unreserve_out;
831 }
832 adev = (struct amdgpu_device *)pdd->dev->kgd;
833
834 r = amdgpu_vm_validate_pt_bos(adev, pdd->vm,
835 svm_range_bo_validate, NULL);
836 if (r) {
837 pr_debug("failed %d validate pt bos\n", r);
838 goto unreserve_out;
839 }
840 }
841
842 return 0;
843
844 unreserve_out:
845 ttm_eu_backoff_reservation(&ctx->ticket, &ctx->validate_list);
846 return r;
847 }
848
> 849 void svm_range_unreserve_bos(struct svm_validate_context *ctx)
850 {
851 ttm_eu_backoff_reservation(&ctx->ticket, &ctx->validate_list);
852 }
853
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 39760 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20210401/84d516a3/attachment-0001.gz>
More information about the amd-gfx
mailing list