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 --]
next prev 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.