Kconfig.debug 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config DRM_I915_WERROR
  3. bool "Force GCC to throw an error instead of a warning when compiling"
  4. # As this may inadvertently break the build, only allow the user
  5. # to shoot oneself in the foot iff they aim really hard
  6. depends on EXPERT
  7. # We use the dependency on !COMPILE_TEST to not be enabled in
  8. # allmodconfig or allyesconfig configurations
  9. depends on !COMPILE_TEST
  10. default n
  11. help
  12. Add -Werror to the build flags for (and only for) i915.ko.
  13. Do not enable this unless you are writing code for the i915.ko module.
  14. Recommended for driver developers only.
  15. If in doubt, say "N".
  16. config DRM_I915_REPLAY_GPU_HANGS_API
  17. bool "Enable GPU hang replay userspace API"
  18. depends on DRM_I915
  19. depends on EXPERT
  20. default n
  21. help
  22. Choose this option if you want to enable special and unstable
  23. userspace API used for replaying GPU hangs on a running system.
  24. This API is intended to be used by userspace graphics stack developers
  25. and provides no stability guarantees.
  26. The API needs to be activated at boot time using the
  27. enable_debug_only_api module parameter.
  28. If in doubt, say "N".
  29. config DRM_I915_DEBUG
  30. bool "Enable additional driver debugging"
  31. depends on DRM_I915
  32. depends on EXPERT # only for developers
  33. depends on !COMPILE_TEST # never built by robots
  34. select DEBUG_FS
  35. select PREEMPT_COUNT
  36. select I2C_CHARDEV
  37. select REF_TRACKER
  38. select STACKDEPOT
  39. select STACKTRACE
  40. select DRM_DISPLAY_DP_AUX_CHARDEV
  41. select DRM_DISPLAY_DP_TUNNEL_STATE_DEBUG if DRM_I915_DP_TUNNEL
  42. select X86_MSR # used by igt/pm_rpm
  43. select DRM_VGEM # used by igt/prime_vgem (dmabuf interop checks)
  44. select DRM_DEBUG_MM if DRM=y
  45. select DRM_EXPORT_FOR_TESTS if m
  46. select DRM_KUNIT_TEST if KUNIT
  47. select DMABUF_SELFTESTS
  48. select SW_SYNC # signaling validation framework (igt/syncobj*)
  49. select DRM_I915_WERROR
  50. select DRM_I915_DEBUG_GEM
  51. select DRM_I915_DEBUG_GEM_ONCE
  52. select DRM_I915_DEBUG_MMIO
  53. select DRM_I915_DEBUG_RUNTIME_PM
  54. select DRM_I915_DEBUG_WAKEREF
  55. select DRM_I915_SW_FENCE_DEBUG_OBJECTS
  56. select DRM_I915_SELFTEST
  57. default n
  58. help
  59. Choose this option to turn on extra driver debugging that may affect
  60. performance but will catch some internal issues.
  61. Recommended for driver developers only.
  62. If in doubt, say "N".
  63. config DRM_I915_DEBUG_MMIO
  64. bool "Always insert extra checks around mmio access by default"
  65. default n
  66. help
  67. By default, always enables the extra sanity checks (extra register
  68. reads) around every mmio (register) access that will slow the system
  69. down. This sets the default value of i915.mmio_debug to -1 and can
  70. be overridden at module load.
  71. Recommended for driver developers only.
  72. If in doubt, say "N".
  73. config DRM_I915_DEBUG_GEM
  74. bool "Insert extra checks into the GEM internals"
  75. default n
  76. depends on DRM_I915_WERROR
  77. help
  78. Enable extra sanity checks (including BUGs) along the GEM driver
  79. paths that may slow the system down and if hit hang the machine.
  80. Recommended for driver developers only.
  81. If in doubt, say "N".
  82. config DRM_I915_DEBUG_GEM_ONCE
  83. bool "Make a GEM debug failure fatal"
  84. default n
  85. depends on DRM_I915_DEBUG_GEM
  86. help
  87. During development, we often only want the very first failure
  88. as that would otherwise be lost in the deluge of subsequent
  89. failures. However, more casual testers may not want to trigger
  90. a hard BUG_ON and hope that the system remains sufficiently usable
  91. to capture a bug report in situ.
  92. Recommended for driver developers only.
  93. If in doubt, say "N".
  94. config DRM_I915_ERRLOG_GEM
  95. bool "Insert extra logging (very verbose) for common GEM errors"
  96. default n
  97. depends on DRM_I915_DEBUG_GEM
  98. help
  99. Enable additional logging that may help track down the cause of
  100. principally userspace errors.
  101. Recommended for driver developers only.
  102. If in doubt, say "N".
  103. config DRM_I915_TRACE_GEM
  104. bool "Insert extra ftrace output from the GEM internals"
  105. depends on DRM_I915_DEBUG_GEM
  106. select TRACING
  107. default n
  108. help
  109. Enable additional and verbose debugging output that will spam
  110. ordinary tests, but may be vital for post-mortem debugging when
  111. used with /proc/sys/kernel/ftrace_dump_on_oops
  112. Recommended for driver developers only.
  113. If in doubt, say "N".
  114. config DRM_I915_TRACE_GTT
  115. bool "Insert extra ftrace output from the GTT internals"
  116. depends on DRM_I915_DEBUG_GEM
  117. select TRACING
  118. default n
  119. help
  120. Enable additional and verbose debugging output that will spam
  121. ordinary tests, but may be vital for post-mortem debugging when
  122. used with /proc/sys/kernel/ftrace_dump_on_oops
  123. Recommended for driver developers only.
  124. If in doubt, say "N".
  125. config DRM_I915_SW_FENCE_DEBUG_OBJECTS
  126. bool "Enable additional driver debugging for fence objects"
  127. depends on DRM_I915
  128. select DEBUG_OBJECTS
  129. default n
  130. help
  131. Choose this option to turn on extra driver debugging that may affect
  132. performance but will catch some internal issues.
  133. Recommended for driver developers only.
  134. If in doubt, say "N".
  135. config DRM_I915_SW_FENCE_CHECK_DAG
  136. bool "Enable additional driver debugging for detecting dependency cycles"
  137. depends on DRM_I915
  138. default n
  139. help
  140. Choose this option to turn on extra driver debugging that may affect
  141. performance but will catch some internal issues.
  142. Recommended for driver developers only.
  143. If in doubt, say "N".
  144. config DRM_I915_DEBUG_GUC
  145. bool "Enable additional driver debugging for GuC"
  146. depends on DRM_I915
  147. select STACKDEPOT
  148. default n
  149. help
  150. Choose this option to turn on extra driver debugging that may affect
  151. performance but will help resolve GuC related issues.
  152. Recommended for driver developers only.
  153. If in doubt, say "N".
  154. config DRM_I915_SELFTEST
  155. bool "Enable selftests upon driver load"
  156. depends on DRM_I915
  157. default n
  158. select DRM_EXPORT_FOR_TESTS if m
  159. select FAULT_INJECTION
  160. select PRIME_NUMBERS
  161. select CRC32
  162. help
  163. Choose this option to allow the driver to perform selftests upon
  164. loading; also requires the i915.selftest=1 module parameter. To
  165. exit the module after running the selftests (i.e. to prevent normal
  166. module initialisation afterwards) use i915.selftest=-1.
  167. Recommended for driver developers only.
  168. If in doubt, say "N".
  169. config DRM_I915_SELFTEST_BROKEN
  170. bool "Enable broken and dangerous selftests"
  171. depends on DRM_I915_SELFTEST
  172. depends on BROKEN
  173. default n
  174. help
  175. This option enables the execution of selftests that are "dangerous"
  176. and may trigger unintended HW side-effects as they break strict
  177. rules given in the HW specification. For science.
  178. Recommended for masochistic driver developers only.
  179. If in doubt, say "N".
  180. config DRM_I915_LOW_LEVEL_TRACEPOINTS
  181. bool "Enable low level request tracing events"
  182. depends on DRM_I915
  183. default n
  184. help
  185. Choose this option to turn on low level request tracing events.
  186. This provides the ability to precisely monitor engine utilisation
  187. and also analyze the request dependency resolving timeline.
  188. Recommended for driver developers only.
  189. If in doubt, say "N".
  190. config DRM_I915_DEBUG_VBLANK_EVADE
  191. bool "Enable extra debug warnings for vblank evasion"
  192. depends on DRM_I915
  193. default n
  194. help
  195. Choose this option to turn on extra debug warnings for the
  196. vblank evade mechanism. This gives a warning every time the
  197. the deadline allotted for the vblank evade critical section
  198. is exceeded, even if there isn't an actual risk of missing
  199. the vblank.
  200. Recommended for driver developers only.
  201. If in doubt, say "N".
  202. config DRM_I915_DEBUG_RUNTIME_PM
  203. bool "Enable extra state checking for runtime PM"
  204. depends on DRM_I915
  205. default n
  206. select REF_TRACKER
  207. select STACKDEPOT
  208. select STACKTRACE
  209. help
  210. Choose this option to turn on extra state checking for the
  211. runtime PM functionality. This may introduce overhead during
  212. driver loading, suspend and resume operations.
  213. Recommended for driver developers only.
  214. If in doubt, say "N"
  215. config DRM_I915_DEBUG_WAKEREF
  216. bool "Enable extra tracking for wakerefs"
  217. depends on DRM_I915
  218. select REF_TRACKER
  219. select STACKDEPOT
  220. select STACKTRACE
  221. help
  222. Choose this option to turn on extra state checking and usage
  223. tracking for the wakerefPM functionality. This may introduce
  224. overhead during driver runtime.
  225. If in doubt, say "N"