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