Skip to content

Commit

Permalink
drm/i915: Make GEM errors non-fatal by default
Browse files Browse the repository at this point in the history
While immensely convenient for developing to only tackle the first
error, and not be flooded by repeated or secondiary issues, many more
casual testers are not setup to remotely capture debug traces. For those
testers, it is more beneficial to keep the system running in the remote
chance that they are able to extract the original debug logs.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210114113434.8229-2-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Jan 19, 2021
1 parent 4f86975 commit 03c62d8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
16 changes: 16 additions & 0 deletions drivers/gpu/drm/i915/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ config DRM_I915_DEBUG
select SW_SYNC # signaling validation framework (igt/syncobj*)
select DRM_I915_WERROR
select DRM_I915_DEBUG_GEM
select DRM_I915_DEBUG_GEM_ONCE
select DRM_I915_DEBUG_MMIO
select DRM_I915_DEBUG_RUNTIME_PM
select DRM_I915_SW_FENCE_DEBUG_OBJECTS
Expand Down Expand Up @@ -71,6 +72,21 @@ config DRM_I915_DEBUG_GEM

If in doubt, say "N".

config DRM_I915_DEBUG_GEM_ONCE
bool "Make a GEM debug failure fatal"
default n
depends on DRM_I915_DEBUG_GEM
help
During development, we often only want the very first failure
as that would otherwise be lost in the deluge of subsequent
failures. However, more casual testers may not want to trigger
a hard BUG_ON and hope that the system remains sufficiently usable
to capture a bug report in situ.

Recommended for driver developers only.

If in doubt, say "N".

config DRM_I915_ERRLOG_GEM
bool "Insert extra logging (very verbose) for common GEM errors"
default n
Expand Down
9 changes: 8 additions & 1 deletion drivers/gpu/drm/i915/i915_gem.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,18 @@ struct drm_i915_private;

#define GEM_SHOW_DEBUG() drm_debug_enabled(DRM_UT_DRIVER)

#ifdef CONFIG_DRM_I915_DEBUG_GEM_ONCE
#define __GEM_BUG(cond) BUG()
#else
#define __GEM_BUG(cond) \
WARN(1, "%s:%d GEM_BUG_ON(%s)\n", __func__, __LINE__, __stringify(cond))
#endif

#define GEM_BUG_ON(condition) do { if (unlikely((condition))) { \
GEM_TRACE_ERR("%s:%d GEM_BUG_ON(%s)\n", \
__func__, __LINE__, __stringify(condition)); \
GEM_TRACE_DUMP(); \
BUG(); \
__GEM_BUG(condition); \
} \
} while(0)
#define GEM_WARN_ON(expr) WARN_ON(expr)
Expand Down

0 comments on commit 03c62d8

Please sign in to comment.