All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [Intel-gfx] [RFC PATCH] drm/i915/debugfs: Only wedge if we have reset available
Date: Thu, 03 Oct 2019 01:31:35 +0800	[thread overview]
Message-ID: <201910030149.PspYpWSm%lkp@intel.com> (raw)
In-Reply-To: <20191002124820.1862-1-janusz.krzysztofik@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 9311 bytes --]

Hi Janusz,

[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on drm-intel/for-linux-next]
[cannot apply to v5.4-rc1 next-20191002]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Janusz-Krzysztofik/drm-i915-debugfs-Only-wedge-if-we-have-reset-available/20191002-235155
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-randconfig-g001-201939 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 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@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/export.h:45:0,
                    from include/linux/linkage.h:7,
                    from include/linux/kernel.h:8,
                    from include/linux/sched/mm.h:5,
                    from drivers/gpu/drm/i915/i915_debugfs.c:29:
   drivers/gpu/drm/i915/i915_debugfs.c: In function 'i915_drop_caches_set':
   drivers/gpu/drm/i915/i915_debugfs.c:3618:28: error: passing argument 1 of 'intel_has_gpu_reset' from incompatible pointer type [-Werror=incompatible-pointer-types]
      if (!intel_has_gpu_reset(&i915->gt))
                               ^
   include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
    #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                       ^~~~
>> drivers/gpu/drm/i915/i915_debugfs.c:3618:3: note: in expansion of macro 'if'
      if (!intel_has_gpu_reset(&i915->gt))
      ^~
   In file included from drivers/gpu/drm/i915/i915_gem_gtt.h:45:0,
                    from drivers/gpu/drm/i915/i915_vma.h:33,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc.h:17,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:80,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_debugfs.c:35:
   drivers/gpu/drm/i915/gt/intel_reset.h:74:6: note: expected 'struct drm_i915_private *' but argument is of type 'struct intel_gt *'
    bool intel_has_gpu_reset(struct drm_i915_private *i915);
         ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/export.h:45:0,
                    from include/linux/linkage.h:7,
                    from include/linux/kernel.h:8,
                    from include/linux/sched/mm.h:5,
                    from drivers/gpu/drm/i915/i915_debugfs.c:29:
   drivers/gpu/drm/i915/i915_debugfs.c:3618:28: error: passing argument 1 of 'intel_has_gpu_reset' from incompatible pointer type [-Werror=incompatible-pointer-types]
      if (!intel_has_gpu_reset(&i915->gt))
                               ^
   include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
    #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
                                                                ^~~~
>> drivers/gpu/drm/i915/i915_debugfs.c:3618:3: note: in expansion of macro 'if'
      if (!intel_has_gpu_reset(&i915->gt))
      ^~
   In file included from drivers/gpu/drm/i915/i915_gem_gtt.h:45:0,
                    from drivers/gpu/drm/i915/i915_vma.h:33,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc.h:17,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:80,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_debugfs.c:35:
   drivers/gpu/drm/i915/gt/intel_reset.h:74:6: note: expected 'struct drm_i915_private *' but argument is of type 'struct intel_gt *'
    bool intel_has_gpu_reset(struct drm_i915_private *i915);
         ^~~~~~~~~~~~~~~~~~~
   In file included from include/linux/export.h:45:0,
                    from include/linux/linkage.h:7,
                    from include/linux/kernel.h:8,
                    from include/linux/sched/mm.h:5,
                    from drivers/gpu/drm/i915/i915_debugfs.c:29:
   drivers/gpu/drm/i915/i915_debugfs.c:3618:28: error: passing argument 1 of 'intel_has_gpu_reset' from incompatible pointer type [-Werror=incompatible-pointer-types]
      if (!intel_has_gpu_reset(&i915->gt))
                               ^
   include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
     (cond) ?     \
      ^~~~
   include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
    #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                               ^~~~~~~~~~~~~~
>> drivers/gpu/drm/i915/i915_debugfs.c:3618:3: note: in expansion of macro 'if'
      if (!intel_has_gpu_reset(&i915->gt))
      ^~
   In file included from drivers/gpu/drm/i915/i915_gem_gtt.h:45:0,
                    from drivers/gpu/drm/i915/i915_vma.h:33,
                    from drivers/gpu/drm/i915/gt/uc/intel_guc.h:17,
                    from drivers/gpu/drm/i915/gt/uc/intel_uc.h:9,
                    from drivers/gpu/drm/i915/gt/intel_gt_types.h:16,
                    from drivers/gpu/drm/i915/i915_drv.h:80,
                    from drivers/gpu/drm/i915/display/intel_display_types.h:46,
                    from drivers/gpu/drm/i915/i915_debugfs.c:35:
   drivers/gpu/drm/i915/gt/intel_reset.h:74:6: note: expected 'struct drm_i915_private *' but argument is of type 'struct intel_gt *'
    bool intel_has_gpu_reset(struct drm_i915_private *i915);
         ^~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/if +3618 drivers/gpu/drm/i915/i915_debugfs.c

  3601	
  3602	static int
  3603	i915_drop_caches_set(void *data, u64 val)
  3604	{
  3605		struct drm_i915_private *i915 = data;
  3606	
  3607		DRM_DEBUG("Dropping caches: 0x%08llx [0x%08llx]\n",
  3608			  val, val & DROP_ALL);
  3609	
  3610		if (val & DROP_RESET_ACTIVE &&
  3611		    wait_for(intel_engines_are_idle(&i915->gt),
  3612			     I915_IDLE_ENGINES_TIMEOUT)) {
  3613			/*
  3614			 * Only wedge if reset is supported and not disabled, otherwise
  3615			 * we certainly end up with the GPU terminally wedged.  Inform
  3616			 * userspace about the problem instead.
  3617			 */
> 3618			if (!intel_has_gpu_reset(&i915->gt))
  3619				return -EBUSY;
  3620	
  3621			intel_gt_set_wedged(&i915->gt);
  3622		}
  3623	
  3624		/* No need to check and wait for gpu resets, only libdrm auto-restarts
  3625		 * on ioctls on -EAGAIN. */
  3626		if (val & (DROP_ACTIVE | DROP_IDLE | DROP_RETIRE | DROP_RESET_SEQNO)) {
  3627			int ret;
  3628	
  3629			ret = mutex_lock_interruptible(&i915->drm.struct_mutex);
  3630			if (ret)
  3631				return ret;
  3632	
  3633			/*
  3634			 * To finish the flush of the idle_worker, we must complete
  3635			 * the switch-to-kernel-context, which requires a double
  3636			 * pass through wait_for_idle: first queues the switch,
  3637			 * second waits for the switch.
  3638			 */
  3639			if (ret == 0 && val & (DROP_IDLE | DROP_ACTIVE))
  3640				ret = i915_gem_wait_for_idle(i915,
  3641							     I915_WAIT_INTERRUPTIBLE |
  3642							     I915_WAIT_LOCKED,
  3643							     MAX_SCHEDULE_TIMEOUT);
  3644	
  3645			if (ret == 0 && val & DROP_IDLE)
  3646				ret = i915_gem_wait_for_idle(i915,
  3647							     I915_WAIT_INTERRUPTIBLE |
  3648							     I915_WAIT_LOCKED,
  3649							     MAX_SCHEDULE_TIMEOUT);
  3650	
  3651			if (val & DROP_RETIRE)
  3652				i915_retire_requests(i915);
  3653	
  3654			mutex_unlock(&i915->drm.struct_mutex);
  3655	
  3656			if (ret == 0 && val & DROP_IDLE)
  3657				ret = intel_gt_pm_wait_for_idle(&i915->gt);
  3658		}
  3659	
  3660		if (val & DROP_RESET_ACTIVE && intel_gt_terminally_wedged(&i915->gt))
  3661			intel_gt_handle_error(&i915->gt, ALL_ENGINES, 0, NULL);
  3662	
  3663		fs_reclaim_acquire(GFP_KERNEL);
  3664		if (val & DROP_BOUND)
  3665			i915_gem_shrink(i915, LONG_MAX, NULL, I915_SHRINK_BOUND);
  3666	
  3667		if (val & DROP_UNBOUND)
  3668			i915_gem_shrink(i915, LONG_MAX, NULL, I915_SHRINK_UNBOUND);
  3669	
  3670		if (val & DROP_SHRINK_ALL)
  3671			i915_gem_shrink_all(i915);
  3672		fs_reclaim_release(GFP_KERNEL);
  3673	
  3674		if (val & DROP_IDLE) {
  3675			flush_delayed_work(&i915->gem.retire_work);
  3676			flush_work(&i915->gem.idle_work);
  3677		}
  3678	
  3679		if (val & DROP_FREED)
  3680			i915_gem_drain_freed_objects(i915);
  3681	
  3682		return 0;
  3683	}
  3684	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30179 bytes --]

  parent reply	other threads:[~2019-10-02 17:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-02 12:48 [RFC PATCH] drm/i915/debugfs: Only wedge if we have reset available Janusz Krzysztofik
2019-10-02 15:45 ` Tvrtko Ursulin
2019-10-02 15:59   ` Chris Wilson
2019-10-02 16:33 ` [Intel-gfx] " kbuild test robot
2019-10-02 17:00 ` ✓ Fi.CI.BAT: success for " Patchwork
2019-10-02 17:31 ` kbuild test robot [this message]
2019-10-03  1:07 ` ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201910030149.PspYpWSm%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.