[PATCH 3/3] drm/ttm: switch to per device LRU lock

kernel test robot lkp at intel.com
Mon Mar 15 20:17:49 UTC 2021


Hi "Christian,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master drm/drm-next v5.12-rc3 next-20210315]
[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/Christian-K-nig/drm-ttm-move-swapout-logic-around/20210316-000551
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-randconfig-m001-20210315 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

smatch warnings:
drivers/gpu/drm/ttm/ttm_device.c:158 ttm_device_swapout() warn: inconsistent returns '&bdev->lru_lock'.
drivers/gpu/drm/ttm/ttm_bo.c:665 ttm_mem_evict_first() error: we previously assumed 'bo' could be null (see line 662)

vim +158 drivers/gpu/drm/ttm/ttm_device.c

70ae63f3a85b97 Christian König 2021-03-15  123  
70ae63f3a85b97 Christian König 2021-03-15  124  long ttm_device_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx,
70ae63f3a85b97 Christian König 2021-03-15  125  			gfp_t gfp_flags)
70ae63f3a85b97 Christian König 2021-03-15  126  {
70ae63f3a85b97 Christian König 2021-03-15  127  	struct ttm_resource_manager *man;
824dca26fe3958 Christian König 2021-03-15  128  	struct ttm_buffer_object *bo;
70ae63f3a85b97 Christian König 2021-03-15  129  	unsigned i, j;
824dca26fe3958 Christian König 2021-03-15  130  	int ret;
824dca26fe3958 Christian König 2021-03-15  131  
1ed8d8fc515b90 Christian König 2021-03-15  132  	spin_lock(&bdev->lru_lock);
70ae63f3a85b97 Christian König 2021-03-15  133  	for (i = TTM_PL_SYSTEM; i < TTM_NUM_MEM_TYPES; ++i) {
70ae63f3a85b97 Christian König 2021-03-15  134  		man = ttm_manager_type(bdev, i);
70ae63f3a85b97 Christian König 2021-03-15  135  		if (!man || !man->use_tt)
70ae63f3a85b97 Christian König 2021-03-15  136  			continue;
70ae63f3a85b97 Christian König 2021-03-15  137  
70ae63f3a85b97 Christian König 2021-03-15  138  		for (j = 0; j < TTM_MAX_BO_PRIORITY; ++j) {
70ae63f3a85b97 Christian König 2021-03-15  139  			list_for_each_entry(bo, &man->lru[j], lru) {
70ae63f3a85b97 Christian König 2021-03-15  140  				long num_pages;
824dca26fe3958 Christian König 2021-03-15  141  
70ae63f3a85b97 Christian König 2021-03-15  142  				if (!bo->ttm ||
70ae63f3a85b97 Christian König 2021-03-15  143  				    bo->ttm->page_flags & TTM_PAGE_FLAG_SG ||
70ae63f3a85b97 Christian König 2021-03-15  144  				    bo->ttm->page_flags & TTM_PAGE_FLAG_SWAPPED)
70ae63f3a85b97 Christian König 2021-03-15  145  					continue;
70ae63f3a85b97 Christian König 2021-03-15  146  
70ae63f3a85b97 Christian König 2021-03-15  147  				num_pages = bo->ttm->num_pages;
824dca26fe3958 Christian König 2021-03-15  148  				ret = ttm_bo_swapout(bo, ctx, gfp_flags);
824dca26fe3958 Christian König 2021-03-15  149  				/* ttm_bo_swapout has dropped the lru_lock */
824dca26fe3958 Christian König 2021-03-15  150  				if (!ret)
824dca26fe3958 Christian König 2021-03-15  151  					return num_pages;
824dca26fe3958 Christian König 2021-03-15  152  				if (ret != -EBUSY)
824dca26fe3958 Christian König 2021-03-15  153  					return ret;
824dca26fe3958 Christian König 2021-03-15  154  			}
824dca26fe3958 Christian König 2021-03-15  155  		}
70ae63f3a85b97 Christian König 2021-03-15  156  	}
1ed8d8fc515b90 Christian König 2021-03-15  157  	spin_unlock(&bdev->lru_lock);
824dca26fe3958 Christian König 2021-03-15 @158  	return 0;
824dca26fe3958 Christian König 2021-03-15  159  }
70ae63f3a85b97 Christian König 2021-03-15  160  EXPORT_SYMBOL(ttm_device_swapout);
824dca26fe3958 Christian König 2021-03-15  161  

---
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: 36557 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20210316/14ec17f7/attachment-0001.gz>


More information about the dri-devel mailing list