[Intel-gfx] [PATCH] drm/i915/selftests: Terminate hangcheck sanitycheck forcibly

kbuild test robot lkp at intel.com
Thu Nov 29 08:38:16 UTC 2018


Hi Chris,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on v4.20-rc4 next-20181128]
[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-selftests-Terminate-hangcheck-sanitycheck-forcibly/20181129-053109
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/i915/intel_hangcheck.c:480:0:
   drivers/gpu/drm/i915/selftests/intel_hangcheck.c: In function 'igt_hang_sanitycheck':
>> drivers/gpu/drm/i915/selftests/intel_hangcheck.c:341:6: warning: 'timeout' may be used uninitialized in this function [-Wmaybe-uninitialized]
      if (timeout < 0) {
         ^

vim +/timeout +341 drivers/gpu/drm/i915/selftests/intel_hangcheck.c

3fb04cb0 Chris Wilson 2017-12-17  293  
496b575e Chris Wilson 2017-02-13  294  static int igt_hang_sanitycheck(void *arg)
496b575e Chris Wilson 2017-02-13  295  {
496b575e Chris Wilson 2017-02-13  296  	struct drm_i915_private *i915 = arg;
e61e0f51 Chris Wilson 2018-02-21  297  	struct i915_request *rq;
496b575e Chris Wilson 2017-02-13  298  	struct intel_engine_cs *engine;
496b575e Chris Wilson 2017-02-13  299  	enum intel_engine_id id;
496b575e Chris Wilson 2017-02-13  300  	struct hang h;
496b575e Chris Wilson 2017-02-13  301  	int err;
496b575e Chris Wilson 2017-02-13  302  
496b575e Chris Wilson 2017-02-13  303  	/* Basic check that we can execute our hanging batch */
496b575e Chris Wilson 2017-02-13  304  
496b575e Chris Wilson 2017-02-13  305  	mutex_lock(&i915->drm.struct_mutex);
496b575e Chris Wilson 2017-02-13  306  	err = hang_init(&h, i915);
496b575e Chris Wilson 2017-02-13  307  	if (err)
496b575e Chris Wilson 2017-02-13  308  		goto unlock;
496b575e Chris Wilson 2017-02-13  309  
496b575e Chris Wilson 2017-02-13  310  	for_each_engine(engine, i915, id) {
63600d01 Chris Wilson 2018-11-28  311  		struct igt_wedge_me w;
496b575e Chris Wilson 2017-02-13  312  		long timeout;
496b575e Chris Wilson 2017-02-13  313  
f2f5c061 Chris Wilson 2017-08-16  314  		if (!intel_engine_can_store_dword(engine))
f2f5c061 Chris Wilson 2017-08-16  315  			continue;
f2f5c061 Chris Wilson 2017-08-16  316  
8ec21a7c Chris Wilson 2018-02-05  317  		rq = hang_create_request(&h, engine);
496b575e Chris Wilson 2017-02-13  318  		if (IS_ERR(rq)) {
496b575e Chris Wilson 2017-02-13  319  			err = PTR_ERR(rq);
496b575e Chris Wilson 2017-02-13  320  			pr_err("Failed to create request for %s, err=%d\n",
496b575e Chris Wilson 2017-02-13  321  			       engine->name, err);
496b575e Chris Wilson 2017-02-13  322  			goto fini;
496b575e Chris Wilson 2017-02-13  323  		}
496b575e Chris Wilson 2017-02-13  324  
e61e0f51 Chris Wilson 2018-02-21  325  		i915_request_get(rq);
496b575e Chris Wilson 2017-02-13  326  
496b575e Chris Wilson 2017-02-13  327  		*h.batch = MI_BATCH_BUFFER_END;
60456d5c Chris Wilson 2017-09-26  328  		i915_gem_chipset_flush(i915);
60456d5c Chris Wilson 2017-09-26  329  
697b9a87 Chris Wilson 2018-06-12  330  		i915_request_add(rq);
496b575e Chris Wilson 2017-02-13  331  
63600d01 Chris Wilson 2018-11-28  332  		igt_wedge_on_timeout(&w, i915, HZ / 10 /* 100ms timeout*/)
e61e0f51 Chris Wilson 2018-02-21  333  			timeout = i915_request_wait(rq,
496b575e Chris Wilson 2017-02-13  334  						    I915_WAIT_LOCKED,
496b575e Chris Wilson 2017-02-13  335  						    MAX_SCHEDULE_TIMEOUT);
63600d01 Chris Wilson 2018-11-28  336  		if (i915_terminally_wedged(&i915->gpu_error))
63600d01 Chris Wilson 2018-11-28  337  			timeout = -EIO;
63600d01 Chris Wilson 2018-11-28  338  
e61e0f51 Chris Wilson 2018-02-21  339  		i915_request_put(rq);
496b575e Chris Wilson 2017-02-13  340  
496b575e Chris Wilson 2017-02-13 @341  		if (timeout < 0) {
496b575e Chris Wilson 2017-02-13  342  			err = timeout;
496b575e Chris Wilson 2017-02-13  343  			pr_err("Wait for request failed on %s, err=%d\n",
496b575e Chris Wilson 2017-02-13  344  			       engine->name, err);
496b575e Chris Wilson 2017-02-13  345  			goto fini;
496b575e Chris Wilson 2017-02-13  346  		}
496b575e Chris Wilson 2017-02-13  347  	}
496b575e Chris Wilson 2017-02-13  348  
496b575e Chris Wilson 2017-02-13  349  fini:
496b575e Chris Wilson 2017-02-13  350  	hang_fini(&h);
496b575e Chris Wilson 2017-02-13  351  unlock:
496b575e Chris Wilson 2017-02-13  352  	mutex_unlock(&i915->drm.struct_mutex);
496b575e Chris Wilson 2017-02-13  353  	return err;
496b575e Chris Wilson 2017-02-13  354  }
496b575e Chris Wilson 2017-02-13  355  

:::::: The code at line 341 was first introduced by commit
:::::: 496b575e3ccbf6fbe57a674c721af43dc8826361 drm/i915: Add initial selftests for hang detection and resets

:::::: 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: 66070 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20181129/a02430c9/attachment-0001.gz>


More information about the Intel-gfx mailing list