Re: [PATCH v4 2/4] drm/i915: Update error capture code to avoid using the current vma state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi "Thomas,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next drm/drm-next tegra-drm/drm/tegra/for-next airlied/drm-next v5.15-rc7 next-20211029]
[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/Thomas-Hellstr-m/Prepare-error-capture-for-asynchronous-migration/20211029-162401
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: x86_64-randconfig-a013-20211028 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5db7568a6a1fcb408eb8988abdaff2a225a8eb72)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/8f96eab37bc957404f16471b6dea28c82a1b7d40
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Thomas-Hellstr-m/Prepare-error-capture-for-asynchronous-migration/20211029-162401
        git checkout 8f96eab37bc957404f16471b6dea28c82a1b7d40
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/i915/i915_request.c:116:2: error: implicit declaration of function 'i915_request_free_capture_list' [-Werror,-Wimplicit-function-declaration]
           i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
           ^
>> drivers/gpu/drm/i915/i915_request.c:116:53: error: no member named 'capture_list' in 'struct i915_request'
           i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
                                                          ~~  ^
   drivers/gpu/drm/i915/i915_utils.h:199:10: note: expanded from macro 'fetch_and_zero'
           typeof(*ptr) __T = *(ptr);                                      \
                   ^~~
>> drivers/gpu/drm/i915/i915_request.c:116:53: error: no member named 'capture_list' in 'struct i915_request'
           i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
                                                          ~~  ^
   drivers/gpu/drm/i915/i915_utils.h:199:23: note: expanded from macro 'fetch_and_zero'
           typeof(*ptr) __T = *(ptr);                                      \
                                ^~~
>> drivers/gpu/drm/i915/i915_request.c:116:53: error: no member named 'capture_list' in 'struct i915_request'
           i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
                                                          ~~  ^
   drivers/gpu/drm/i915/i915_utils.h:200:4: note: expanded from macro 'fetch_and_zero'
           *(ptr) = (typeof(*ptr))0;                                       \
             ^~~
>> drivers/gpu/drm/i915/i915_request.c:116:53: error: no member named 'capture_list' in 'struct i915_request'
           i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
                                                          ~~  ^
   drivers/gpu/drm/i915/i915_utils.h:200:20: note: expanded from macro 'fetch_and_zero'
           *(ptr) = (typeof(*ptr))0;                                       \
                             ^~~
>> drivers/gpu/drm/i915/i915_request.c:116:33: error: argument type 'void' is incomplete
           i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/i915_utils.h:198:29: note: expanded from macro 'fetch_and_zero'
   #define fetch_and_zero(ptr) ({                                          \
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   6 errors generated.


vim +/i915_request_free_capture_list +116 drivers/gpu/drm/i915/i915_request.c

   108	
   109	static void i915_fence_release(struct dma_fence *fence)
   110	{
   111		struct i915_request *rq = to_request(fence);
   112	
   113		GEM_BUG_ON(rq->guc_prio != GUC_PRIO_INIT &&
   114			   rq->guc_prio != GUC_PRIO_FINI);
   115	
 > 116		i915_request_free_capture_list(fetch_and_zero(&rq->capture_list));
   117		if (i915_vma_snapshot_present(&rq->batch_snapshot))
   118			i915_vma_snapshot_put_onstack(&rq->batch_snapshot);
   119	
   120		/*
   121		 * The request is put onto a RCU freelist (i.e. the address
   122		 * is immediately reused), mark the fences as being freed now.
   123		 * Otherwise the debugobjects for the fences are only marked as
   124		 * freed when the slab cache itself is freed, and so we would get
   125		 * caught trying to reuse dead objects.
   126		 */
   127		i915_sw_fence_fini(&rq->submit);
   128		i915_sw_fence_fini(&rq->semaphore);
   129	
   130		/*
   131		 * Keep one request on each engine for reserved use under mempressure,
   132		 * do not use with virtual engines as this really is only needed for
   133		 * kernel contexts.
   134		 */
   135		if (!intel_engine_is_virtual(rq->engine) &&
   136		    !cmpxchg(&rq->engine->request_pool, NULL, rq)) {
   137			intel_context_put(rq->context);
   138			return;
   139		}
   140	
   141		intel_context_put(rq->context);
   142	
   143		kmem_cache_free(slab_requests, rq);
   144	}
   145	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux