[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/dri-devel/attachments/20210401/84d516a3/attachment-0001.gz>


More information about the dri-devel mailing list