[Intel-gfx] [PATCH] drm/i915: Flush all user surfaces prior to first use

kbuild test robot lkp at intel.com
Fri Jul 19 11:20:17 UTC 2019


Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on next-20190719]
[cannot apply to v5.2]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-Flush-all-user-surfaces-prior-to-first-use/20190718-191329
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-b002-201928 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

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

All errors (new ones prefixed by >>):

   drivers/gpu/drm/i915/gem/i915_gem_shmem.c: In function 'i915_gem_object_create_shmem':
>> drivers/gpu/drm/i915/gem/i915_gem_shmem.c:462:15: error: unused variable 'cache_level' [-Werror=unused-variable]
     unsigned int cache_level;
                  ^~~~~~~~~~~
   cc1: all warnings being treated as errors

vim +/cache_level +462 drivers/gpu/drm/i915/gem/i915_gem_shmem.c

8475355f Chris Wilson 2019-05-28  456  
8475355f Chris Wilson 2019-05-28  457  struct drm_i915_gem_object *
8475355f Chris Wilson 2019-05-28  458  i915_gem_object_create_shmem(struct drm_i915_private *i915, u64 size)
8475355f Chris Wilson 2019-05-28  459  {
8475355f Chris Wilson 2019-05-28  460  	struct drm_i915_gem_object *obj;
8475355f Chris Wilson 2019-05-28  461  	struct address_space *mapping;
8475355f Chris Wilson 2019-05-28 @462  	unsigned int cache_level;
8475355f Chris Wilson 2019-05-28  463  	gfp_t mask;
8475355f Chris Wilson 2019-05-28  464  	int ret;
8475355f Chris Wilson 2019-05-28  465  
8475355f Chris Wilson 2019-05-28  466  	/* There is a prevalence of the assumption that we fit the object's
8475355f Chris Wilson 2019-05-28  467  	 * page count inside a 32bit _signed_ variable. Let's document this and
8475355f Chris Wilson 2019-05-28  468  	 * catch if we ever need to fix it. In the meantime, if you do spot
8475355f Chris Wilson 2019-05-28  469  	 * such a local variable, please consider fixing!
8475355f Chris Wilson 2019-05-28  470  	 */
8475355f Chris Wilson 2019-05-28  471  	if (size >> PAGE_SHIFT > INT_MAX)
8475355f Chris Wilson 2019-05-28  472  		return ERR_PTR(-E2BIG);
8475355f Chris Wilson 2019-05-28  473  
8475355f Chris Wilson 2019-05-28  474  	if (overflows_type(size, obj->base.size))
8475355f Chris Wilson 2019-05-28  475  		return ERR_PTR(-E2BIG);
8475355f Chris Wilson 2019-05-28  476  
8475355f Chris Wilson 2019-05-28  477  	obj = i915_gem_object_alloc();
8475355f Chris Wilson 2019-05-28  478  	if (!obj)
8475355f Chris Wilson 2019-05-28  479  		return ERR_PTR(-ENOMEM);
8475355f Chris Wilson 2019-05-28  480  
8475355f Chris Wilson 2019-05-28  481  	ret = create_shmem(i915, &obj->base, size);
8475355f Chris Wilson 2019-05-28  482  	if (ret)
8475355f Chris Wilson 2019-05-28  483  		goto fail;
8475355f Chris Wilson 2019-05-28  484  
8475355f Chris Wilson 2019-05-28  485  	mask = GFP_HIGHUSER | __GFP_RECLAIMABLE;
8475355f Chris Wilson 2019-05-28  486  	if (IS_I965GM(i915) || IS_I965G(i915)) {
8475355f Chris Wilson 2019-05-28  487  		/* 965gm cannot relocate objects above 4GiB. */
8475355f Chris Wilson 2019-05-28  488  		mask &= ~__GFP_HIGHMEM;
8475355f Chris Wilson 2019-05-28  489  		mask |= __GFP_DMA32;
8475355f Chris Wilson 2019-05-28  490  	}
8475355f Chris Wilson 2019-05-28  491  
8475355f Chris Wilson 2019-05-28  492  	mapping = obj->base.filp->f_mapping;
8475355f Chris Wilson 2019-05-28  493  	mapping_set_gfp_mask(mapping, mask);
8475355f Chris Wilson 2019-05-28  494  	GEM_BUG_ON(!(mapping_gfp_mask(mapping) & __GFP_RECLAIM));
8475355f Chris Wilson 2019-05-28  495  
8475355f Chris Wilson 2019-05-28  496  	i915_gem_object_init(obj, &i915_gem_shmem_ops);
8475355f Chris Wilson 2019-05-28  497  
8475355f Chris Wilson 2019-05-28  498  	obj->write_domain = I915_GEM_DOMAIN_CPU;
8475355f Chris Wilson 2019-05-28  499  	obj->read_domains = I915_GEM_DOMAIN_CPU;
8475355f Chris Wilson 2019-05-28  500  
fb172dbb Chris Wilson 2019-07-18  501  	/*
fb172dbb Chris Wilson 2019-07-18  502  	 * Note that userspace has control over cache-bypass
fb172dbb Chris Wilson 2019-07-18  503  	 * via its command stream, so even on LLC architectures
fb172dbb Chris Wilson 2019-07-18  504  	 * we have to flush out the CPU cache to memory to
fb172dbb Chris Wilson 2019-07-18  505  	 * clear previous contents.
8475355f Chris Wilson 2019-05-28  506  	 */
fb172dbb Chris Wilson 2019-07-18  507  	i915_gem_object_set_cache_coherency(obj, I915_CACHE_NONE);
8475355f Chris Wilson 2019-05-28  508  
8475355f Chris Wilson 2019-05-28  509  	trace_i915_gem_object_create(obj);
8475355f Chris Wilson 2019-05-28  510  
8475355f Chris Wilson 2019-05-28  511  	return obj;
8475355f Chris Wilson 2019-05-28  512  
8475355f Chris Wilson 2019-05-28  513  fail:
8475355f Chris Wilson 2019-05-28  514  	i915_gem_object_free(obj);
8475355f Chris Wilson 2019-05-28  515  	return ERR_PTR(ret);
8475355f Chris Wilson 2019-05-28  516  }
8475355f Chris Wilson 2019-05-28  517  

:::::: The code at line 462 was first introduced by commit
:::::: 8475355f7a2645a022288301c03555c31fb4de17 drm/i915: Move shmem object setup to its own file

:::::: TO: Chris Wilson <chris at chris-wilson.co.uk>
:::::: CC: Chris Wilson <chris at chris-wilson.co.uk>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 31290 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20190719/6f05ffde/attachment-0001.gz>


More information about the Intel-gfx mailing list