hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/kernel/trace/Kconfig
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # Architectures that offer an FUNCTION_TRACER implementation should
34 # select HAVE_FUNCTION_TRACER:
....@@ -8,11 +9,6 @@
89
910 config NOP_TRACER
1011 bool
11
-
12
-config HAVE_FTRACE_NMI_ENTER
13
- bool
14
- help
15
- See Documentation/trace/ftrace-design.rst
1612
1713 config HAVE_FUNCTION_TRACER
1814 bool
....@@ -30,6 +26,9 @@
3026 See Documentation/trace/ftrace-design.rst
3127
3228 config HAVE_DYNAMIC_FTRACE_WITH_REGS
29
+ bool
30
+
31
+config HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
3332 bool
3433
3534 config HAVE_FTRACE_MCOUNT_RECORD
....@@ -52,6 +51,11 @@
5251 help
5352 Arch supports the gcc options -pg with -mrecord-mcount and -nop-mcount
5453
54
+config HAVE_OBJTOOL_MCOUNT
55
+ bool
56
+ help
57
+ Arch supports objtool --mcount
58
+
5559 config HAVE_C_RECORDMCOUNT
5660 bool
5761 help
....@@ -68,14 +72,9 @@
6872 select TRACE_CLOCK
6973 select IRQ_WORK
7074
71
-config FTRACE_NMI_ENTER
72
- bool
73
- depends on HAVE_FTRACE_NMI_ENTER
74
- default y
75
-
7675 config EVENT_TRACING
7776 select CONTEXT_SWITCH_TRACER
78
- select GLOB
77
+ select GLOB
7978 bool
8079
8180 config CONTEXT_SWITCH_TRACER
....@@ -87,6 +86,14 @@
8786 Allow the use of ring_buffer_swap_cpu.
8887 Adds a very slight overhead to tracing when enabled.
8988
89
+config TRACE_MMIO_ACCESS
90
+ bool "Register read/write tracing"
91
+ depends on TRACING
92
+ depends on ARM64
93
+ help
94
+ Create tracepoints for IO read/write operations. These trace events
95
+ can be used for logging all MMIO read/write operations.
96
+
9097 config PREEMPTIRQ_TRACEPOINTS
9198 bool
9299 depends on TRACE_PREEMPT_TOGGLE || TRACE_IRQFLAGS
....@@ -95,6 +102,11 @@
95102 help
96103 Create preempt/irq toggle tracepoints if needed, so that other parts
97104 of the kernel can use them to generate or add hooks to them.
105
+
106
+menuconfig TRACEFS_DISABLE_AUTOMOUNT
107
+ bool "Do not autmount tracefs in the debugfs filesystem"
108
+ help
109
+ Provides an option to not automount tracefs in /sys/kernel/debug/tracing.
98110
99111 # All tracer options should select GENERIC_TRACER. For those options that are
100112 # enabled by all tracers (context switch and event tracer) they select TRACING.
....@@ -137,6 +149,15 @@
137149
138150 if FTRACE
139151
152
+config BOOTTIME_TRACING
153
+ bool "Boot-time Tracing support"
154
+ depends on TRACING
155
+ select BOOT_CONFIG
156
+ help
157
+ Enable developer to setup ftrace subsystem via supplemental
158
+ kernel cmdline at boot time for debugging (tracing) driver
159
+ initialization and boot process.
160
+
140161 config FUNCTION_TRACER
141162 bool "Kernel Function Tracer"
142163 depends on HAVE_FUNCTION_TRACER
....@@ -144,7 +165,8 @@
144165 select GENERIC_TRACER
145166 select CONTEXT_SWITCH_TRACER
146167 select GLOB
147
- select TASKS_RCU if PREEMPT
168
+ select TASKS_RCU if PREEMPTION
169
+ select TASKS_RUDE_RCU
148170 help
149171 Enable the kernel to trace every kernel function. This is done
150172 by using a compiler feature to insert a small, 5-byte No-Operation
....@@ -168,20 +190,82 @@
168190 the return value. This is done by setting the current return
169191 address on the current task structure into a stack of calls.
170192
193
+config DYNAMIC_FTRACE
194
+ bool "enable/disable function tracing dynamically"
195
+ depends on FUNCTION_TRACER
196
+ depends on HAVE_DYNAMIC_FTRACE
197
+ default y
198
+ help
199
+ This option will modify all the calls to function tracing
200
+ dynamically (will patch them out of the binary image and
201
+ replace them with a No-Op instruction) on boot up. During
202
+ compile time, a table is made of all the locations that ftrace
203
+ can function trace, and this table is linked into the kernel
204
+ image. When this is enabled, functions can be individually
205
+ enabled, and the functions not enabled will not affect
206
+ performance of the system.
207
+
208
+ See the files in /sys/kernel/debug/tracing:
209
+ available_filter_functions
210
+ set_ftrace_filter
211
+ set_ftrace_notrace
212
+
213
+ This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but
214
+ otherwise has native performance as long as no tracing is active.
215
+
216
+config DYNAMIC_FTRACE_WITH_REGS
217
+ def_bool y
218
+ depends on DYNAMIC_FTRACE
219
+ depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
220
+
221
+config DYNAMIC_FTRACE_WITH_DIRECT_CALLS
222
+ def_bool y
223
+ depends on DYNAMIC_FTRACE_WITH_REGS
224
+ depends on HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
225
+
226
+config FUNCTION_PROFILER
227
+ bool "Kernel function profiler"
228
+ depends on FUNCTION_TRACER
229
+ default n
230
+ help
231
+ This option enables the kernel function profiler. A file is created
232
+ in debugfs called function_profile_enabled which defaults to zero.
233
+ When a 1 is echoed into this file profiling begins, and when a
234
+ zero is entered, profiling stops. A "functions" file is created in
235
+ the trace_stat directory; this file shows the list of functions that
236
+ have been hit and their counters.
237
+
238
+ If in doubt, say N.
239
+
240
+config STACK_TRACER
241
+ bool "Trace max stack"
242
+ depends on HAVE_FUNCTION_TRACER
243
+ select FUNCTION_TRACER
244
+ select STACKTRACE
245
+ select KALLSYMS
246
+ help
247
+ This special tracer records the maximum stack footprint of the
248
+ kernel and displays it in /sys/kernel/debug/tracing/stack_trace.
249
+
250
+ This tracer works by hooking into every function call that the
251
+ kernel executes, and keeping a maximum stack depth value and
252
+ stack-trace saved. If this is configured with DYNAMIC_FTRACE
253
+ then it will not have any overhead while the stack tracer
254
+ is disabled.
255
+
256
+ To enable the stack tracer on bootup, pass in 'stacktrace'
257
+ on the kernel command line.
258
+
259
+ The stack tracer can also be enabled or disabled via the
260
+ sysctl kernel.stack_tracer_enabled
261
+
262
+ Say N if unsure.
263
+
171264 config TRACE_PREEMPT_TOGGLE
172265 bool
173266 help
174267 Enables hooks which will be called when preemption is first disabled,
175268 and last enabled.
176
-
177
-config PREEMPTIRQ_EVENTS
178
- bool "Enable trace events for preempt and irq disable/enable"
179
- select TRACE_IRQFLAGS
180
- select TRACE_PREEMPT_TOGGLE if PREEMPT
181
- select GENERIC_TRACER
182
- default n
183
- help
184
- Enable tracing of disable and enable events for preemption and irqs.
185269
186270 config IRQSOFF_TRACER
187271 bool "Interrupts-off Latency Tracer"
....@@ -212,7 +296,7 @@
212296 bool "Preemption-off Latency Tracer"
213297 default n
214298 depends on !ARCH_USES_GETTIMEOFFSET
215
- depends on PREEMPT
299
+ depends on PREEMPTION
216300 select GENERIC_TRACER
217301 select TRACER_MAX_TRACE
218302 select RING_BUFFER_ALLOW_SWAP
....@@ -278,6 +362,19 @@
278362 file. Every time a latency is greater than tracing_thresh, it will
279363 be recorded into the ring buffer.
280364
365
+config MMIOTRACE
366
+ bool "Memory mapped IO tracing"
367
+ depends on HAVE_MMIOTRACE_SUPPORT && PCI
368
+ select GENERIC_TRACER
369
+ help
370
+ Mmiotrace traces Memory Mapped I/O access and is meant for
371
+ debugging and reverse engineering. It is called from the ioremap
372
+ implementation and works via page faults. Tracing is disabled by
373
+ default and can be enabled at run-time.
374
+
375
+ See Documentation/trace/mmiotrace.rst.
376
+ If you are not helping to develop drivers, say N.
377
+
281378 config ENABLE_DEFAULT_TRACERS
282379 bool "Trace process context switches and events"
283380 depends on !GENERIC_TRACER
....@@ -306,7 +403,7 @@
306403 cat snapshot
307404
308405 config TRACER_SNAPSHOT_PER_CPU_SWAP
309
- bool "Allow snapshot to swap per CPU"
406
+ bool "Allow snapshot to swap per CPU"
310407 depends on TRACER_SNAPSHOT
311408 select RING_BUFFER_ALLOW_SWAP
312409 help
....@@ -405,30 +502,6 @@
405502
406503 Say N if unsure.
407504
408
-config STACK_TRACER
409
- bool "Trace max stack"
410
- depends on HAVE_FUNCTION_TRACER
411
- select FUNCTION_TRACER
412
- select STACKTRACE
413
- select KALLSYMS
414
- help
415
- This special tracer records the maximum stack footprint of the
416
- kernel and displays it in /sys/kernel/debug/tracing/stack_trace.
417
-
418
- This tracer works by hooking into every function call that the
419
- kernel executes, and keeping a maximum stack depth value and
420
- stack-trace saved. If this is configured with DYNAMIC_FTRACE
421
- then it will not have any overhead while the stack tracer
422
- is disabled.
423
-
424
- To enable the stack tracer on bootup, pass in 'stacktrace'
425
- on the kernel command line.
426
-
427
- The stack tracer can also be enabled or disabled via the
428
- sysctl kernel.stack_tracer_enabled
429
-
430
- Say N if unsure.
431
-
432505 config BLK_DEV_IO_TRACE
433506 bool "Support for tracing block IO actions"
434507 depends on SYSFS
....@@ -460,6 +533,7 @@
460533 bool "Enable kprobes-based dynamic events"
461534 select TRACING
462535 select PROBE_EVENTS
536
+ select DYNAMIC_EVENTS
463537 default y
464538 help
465539 This allows the user to add tracing events (similar to tracepoints)
....@@ -499,6 +573,7 @@
499573 depends on PERF_EVENTS
500574 select UPROBES
501575 select PROBE_EVENTS
576
+ select DYNAMIC_EVENTS
502577 select TRACING
503578 default y
504579 help
....@@ -515,52 +590,14 @@
515590 bool
516591 default y
517592 help
518
- This allows the user to attach BPF programs to kprobe events.
593
+ This allows the user to attach BPF programs to kprobe, uprobe, and
594
+ tracepoint events.
595
+
596
+config DYNAMIC_EVENTS
597
+ def_bool n
519598
520599 config PROBE_EVENTS
521600 def_bool n
522
-
523
-config DYNAMIC_FTRACE
524
- bool "enable/disable function tracing dynamically"
525
- depends on FUNCTION_TRACER
526
- depends on HAVE_DYNAMIC_FTRACE
527
- default y
528
- help
529
- This option will modify all the calls to function tracing
530
- dynamically (will patch them out of the binary image and
531
- replace them with a No-Op instruction) on boot up. During
532
- compile time, a table is made of all the locations that ftrace
533
- can function trace, and this table is linked into the kernel
534
- image. When this is enabled, functions can be individually
535
- enabled, and the functions not enabled will not affect
536
- performance of the system.
537
-
538
- See the files in /sys/kernel/debug/tracing:
539
- available_filter_functions
540
- set_ftrace_filter
541
- set_ftrace_notrace
542
-
543
- This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but
544
- otherwise has native performance as long as no tracing is active.
545
-
546
-config DYNAMIC_FTRACE_WITH_REGS
547
- def_bool y
548
- depends on DYNAMIC_FTRACE
549
- depends on HAVE_DYNAMIC_FTRACE_WITH_REGS
550
-
551
-config FUNCTION_PROFILER
552
- bool "Kernel function profiler"
553
- depends on FUNCTION_TRACER
554
- default n
555
- help
556
- This option enables the kernel function profiler. A file is created
557
- in debugfs called function_profile_enabled which defaults to zero.
558
- When a 1 is echoed into this file profiling begins, and when a
559
- zero is entered, profiling stops. A "functions" file is created in
560
- the trace_stat directory; this file shows the list of functions that
561
- have been hit and their counters.
562
-
563
- If in doubt, say N.
564601
565602 config BPF_KPROBE_OVERRIDE
566603 bool "Enable BPF programs to override a kprobed function"
....@@ -576,43 +613,29 @@
576613 depends on DYNAMIC_FTRACE
577614 depends on HAVE_FTRACE_MCOUNT_RECORD
578615
579
-config FTRACE_SELFTEST
616
+config FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
580617 bool
618
+ depends on FTRACE_MCOUNT_RECORD
581619
582
-config FTRACE_STARTUP_TEST
583
- bool "Perform a startup test on ftrace"
584
- depends on GENERIC_TRACER
585
- select FTRACE_SELFTEST
586
- help
587
- This option performs a series of startup tests on ftrace. On bootup
588
- a series of tests are made to verify that the tracer is
589
- functioning properly. It will do tests on all the configured
590
- tracers of ftrace.
620
+config FTRACE_MCOUNT_USE_CC
621
+ def_bool y
622
+ depends on $(cc-option,-mrecord-mcount)
623
+ depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
624
+ depends on FTRACE_MCOUNT_RECORD
591625
592
-config EVENT_TRACE_TEST_SYSCALLS
593
- bool "Run selftest on syscall events"
594
- depends on FTRACE_STARTUP_TEST
595
- help
596
- This option will also enable testing every syscall event.
597
- It only enables the event and disables it and runs various loads
598
- with the event enabled. This adds a bit more time for kernel boot
599
- up since it runs this on every system call defined.
626
+config FTRACE_MCOUNT_USE_OBJTOOL
627
+ def_bool y
628
+ depends on HAVE_OBJTOOL_MCOUNT
629
+ depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
630
+ depends on !FTRACE_MCOUNT_USE_CC
631
+ depends on FTRACE_MCOUNT_RECORD
600632
601
- TBD - enable a way to actually call the syscalls as we test their
602
- events
603
-
604
-config MMIOTRACE
605
- bool "Memory mapped IO tracing"
606
- depends on HAVE_MMIOTRACE_SUPPORT && PCI
607
- select GENERIC_TRACER
608
- help
609
- Mmiotrace traces Memory Mapped I/O access and is meant for
610
- debugging and reverse engineering. It is called from the ioremap
611
- implementation and works via page faults. Tracing is disabled by
612
- default and can be enabled at run-time.
613
-
614
- See Documentation/trace/mmiotrace.rst.
615
- If you are not helping to develop drivers, say N.
633
+config FTRACE_MCOUNT_USE_RECORDMCOUNT
634
+ def_bool y
635
+ depends on !FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY
636
+ depends on !FTRACE_MCOUNT_USE_CC
637
+ depends on !FTRACE_MCOUNT_USE_OBJTOOL
638
+ depends on FTRACE_MCOUNT_RECORD
616639
617640 config TRACING_MAP
618641 bool
....@@ -624,11 +647,30 @@
624647 generally used outside of that context, and is normally
625648 selected by tracers that use it.
626649
650
+config SYNTH_EVENTS
651
+ bool "Synthetic trace events"
652
+ select TRACING
653
+ select DYNAMIC_EVENTS
654
+ default n
655
+ help
656
+ Synthetic events are user-defined trace events that can be
657
+ used to combine data from other trace events or in fact any
658
+ data source. Synthetic events can be generated indirectly
659
+ via the trace() action of histogram triggers or directly
660
+ by way of an in-kernel API.
661
+
662
+ See Documentation/trace/events.rst or
663
+ Documentation/trace/histogram.rst for details and examples.
664
+
665
+ If in doubt, say N.
666
+
627667 config HIST_TRIGGERS
628668 bool "Histogram triggers"
629669 depends on ARCH_HAVE_NMI_SAFE_CMPXCHG
630670 select TRACING_MAP
631671 select TRACING
672
+ select DYNAMIC_EVENTS
673
+ select SYNTH_EVENTS
632674 default n
633675 help
634676 Hist triggers allow one or more arbitrary trace event fields
....@@ -644,18 +686,17 @@
644686 See Documentation/trace/histogram.rst.
645687 If in doubt, say N.
646688
647
-config MMIOTRACE_TEST
648
- tristate "Test module for mmiotrace"
649
- depends on MMIOTRACE && m
689
+config TRACE_EVENT_INJECT
690
+ bool "Trace event injection"
691
+ depends on TRACING
650692 help
651
- This is a dumb module for testing mmiotrace. It is very dangerous
652
- as it will write garbage to IO memory starting at a given address.
653
- However, it should be safe to use on e.g. unused portion of VRAM.
693
+ Allow user-space to inject a specific trace event into the ring
694
+ buffer. This is mainly used for testing purpose.
654695
655
- Say N, unless you absolutely know what you are doing.
696
+ If unsure, say N.
656697
657698 config TRACEPOINT_BENCHMARK
658
- bool "Add tracepoint that benchmarks tracepoints"
699
+ bool "Add tracepoint that benchmarks tracepoints"
659700 help
660701 This option creates the tracepoint "benchmark:benchmark_event".
661702 When the tracepoint is enabled, it kicks off a kernel thread that
....@@ -700,50 +741,12 @@
700741
701742 If unsure, say N.
702743
703
-config RING_BUFFER_STARTUP_TEST
704
- bool "Ring buffer startup self test"
705
- depends on RING_BUFFER
706
- help
707
- Run a simple self test on the ring buffer on boot up. Late in the
708
- kernel boot sequence, the test will start that kicks off
709
- a thread per cpu. Each thread will write various size events
710
- into the ring buffer. Another thread is created to send IPIs
711
- to each of the threads, where the IPI handler will also write
712
- to the ring buffer, to test/stress the nesting ability.
713
- If any anomalies are discovered, a warning will be displayed
714
- and all ring buffers will be disabled.
715
-
716
- The test runs for 10 seconds. This will slow your boot time
717
- by at least 10 more seconds.
718
-
719
- At the end of the test, statics and more checks are done.
720
- It will output the stats of each per cpu buffer. What
721
- was written, the sizes, what was read, what was lost, and
722
- other similar details.
723
-
724
- If unsure, say N
725
-
726
-config PREEMPTIRQ_DELAY_TEST
727
- tristate "Preempt / IRQ disable delay thread to test latency tracers"
728
- depends on m
729
- help
730
- Select this option to build a test module that can help test latency
731
- tracers by executing a preempt or irq disable section with a user
732
- configurable delay. The module busy waits for the duration of the
733
- critical section.
734
-
735
- For example, the following invocation forces a one-time irq-disabled
736
- critical section for 500us:
737
- modprobe preemptirq_delay_test test_mode=irq delay=500000
738
-
739
- If unsure, say N
740
-
741744 config TRACE_EVAL_MAP_FILE
742745 bool "Show eval mappings for trace events"
743746 depends on TRACING
744747 help
745748 The "print fmt" of the trace events will show the enum/sizeof names
746
- instead of their values. This can cause problems for user space tools
749
+ instead of their values. This can cause problems for user space tools
747750 that use this string to parse the raw data as user space does not know
748751 how to convert the string to its value.
749752
....@@ -764,14 +767,7 @@
764767 they are needed for the "eval_map" file. Enabling this option will
765768 increase the memory footprint of the running kernel.
766769
767
- If unsure, say N
768
-
769
-config TRACING_EVENTS_GPIO
770
- bool "Trace gpio events"
771
- depends on GPIOLIB
772
- default y
773
- help
774
- Enable tracing events for gpio subsystem
770
+ If unsure, say N.
775771
776772 config GCOV_PROFILE_FTRACE
777773 bool "Enable GCOV profiling on ftrace subsystem"
....@@ -785,6 +781,137 @@
785781 Note that on a kernel compiled with this config, ftrace will
786782 run significantly slower.
787783
784
+config FTRACE_SELFTEST
785
+ bool
786
+
787
+config FTRACE_STARTUP_TEST
788
+ bool "Perform a startup test on ftrace"
789
+ depends on GENERIC_TRACER
790
+ select FTRACE_SELFTEST
791
+ help
792
+ This option performs a series of startup tests on ftrace. On bootup
793
+ a series of tests are made to verify that the tracer is
794
+ functioning properly. It will do tests on all the configured
795
+ tracers of ftrace.
796
+
797
+config EVENT_TRACE_STARTUP_TEST
798
+ bool "Run selftest on trace events"
799
+ depends on FTRACE_STARTUP_TEST
800
+ default y
801
+ help
802
+ This option performs a test on all trace events in the system.
803
+ It basically just enables each event and runs some code that
804
+ will trigger events (not necessarily the event it enables)
805
+ This may take some time run as there are a lot of events.
806
+
807
+config EVENT_TRACE_TEST_SYSCALLS
808
+ bool "Run selftest on syscall events"
809
+ depends on EVENT_TRACE_STARTUP_TEST
810
+ help
811
+ This option will also enable testing every syscall event.
812
+ It only enables the event and disables it and runs various loads
813
+ with the event enabled. This adds a bit more time for kernel boot
814
+ up since it runs this on every system call defined.
815
+
816
+ TBD - enable a way to actually call the syscalls as we test their
817
+ events
818
+
819
+config RING_BUFFER_STARTUP_TEST
820
+ bool "Ring buffer startup self test"
821
+ depends on RING_BUFFER
822
+ help
823
+ Run a simple self test on the ring buffer on boot up. Late in the
824
+ kernel boot sequence, the test will start that kicks off
825
+ a thread per cpu. Each thread will write various size events
826
+ into the ring buffer. Another thread is created to send IPIs
827
+ to each of the threads, where the IPI handler will also write
828
+ to the ring buffer, to test/stress the nesting ability.
829
+ If any anomalies are discovered, a warning will be displayed
830
+ and all ring buffers will be disabled.
831
+
832
+ The test runs for 10 seconds. This will slow your boot time
833
+ by at least 10 more seconds.
834
+
835
+ At the end of the test, statics and more checks are done.
836
+ It will output the stats of each per cpu buffer. What
837
+ was written, the sizes, what was read, what was lost, and
838
+ other similar details.
839
+
840
+ If unsure, say N
841
+
842
+config MMIOTRACE_TEST
843
+ tristate "Test module for mmiotrace"
844
+ depends on MMIOTRACE && m
845
+ help
846
+ This is a dumb module for testing mmiotrace. It is very dangerous
847
+ as it will write garbage to IO memory starting at a given address.
848
+ However, it should be safe to use on e.g. unused portion of VRAM.
849
+
850
+ Say N, unless you absolutely know what you are doing.
851
+
852
+config PREEMPTIRQ_DELAY_TEST
853
+ tristate "Test module to create a preempt / IRQ disable delay thread to test latency tracers"
854
+ depends on m
855
+ help
856
+ Select this option to build a test module that can help test latency
857
+ tracers by executing a preempt or irq disable section with a user
858
+ configurable delay. The module busy waits for the duration of the
859
+ critical section.
860
+
861
+ For example, the following invocation generates a burst of three
862
+ irq-disabled critical sections for 500us:
863
+ modprobe preemptirq_delay_test test_mode=irq delay=500 burst_size=3
864
+
865
+ If unsure, say N
866
+
867
+config SYNTH_EVENT_GEN_TEST
868
+ tristate "Test module for in-kernel synthetic event generation"
869
+ depends on SYNTH_EVENTS
870
+ help
871
+ This option creates a test module to check the base
872
+ functionality of in-kernel synthetic event definition and
873
+ generation.
874
+
875
+ To test, insert the module, and then check the trace buffer
876
+ for the generated sample events.
877
+
878
+ If unsure, say N.
879
+
880
+config KPROBE_EVENT_GEN_TEST
881
+ tristate "Test module for in-kernel kprobe event generation"
882
+ depends on KPROBE_EVENTS
883
+ help
884
+ This option creates a test module to check the base
885
+ functionality of in-kernel kprobe event definition.
886
+
887
+ To test, insert the module, and then check the trace buffer
888
+ for the generated kprobe events.
889
+
890
+ If unsure, say N.
891
+
892
+config HIST_TRIGGERS_DEBUG
893
+ bool "Hist trigger debug support"
894
+ depends on HIST_TRIGGERS
895
+ help
896
+ Add "hist_debug" file for each event, which when read will
897
+ dump out a bunch of internal details about the hist triggers
898
+ defined on that event.
899
+
900
+ The hist_debug file serves a couple of purposes:
901
+
902
+ - Helps developers verify that nothing is broken.
903
+
904
+ - Provides educational information to support the details
905
+ of the hist trigger internals as described by
906
+ Documentation/trace/histogram-design.rst.
907
+
908
+ The hist_debug output only covers the data structures
909
+ related to the histogram definitions themselves and doesn't
910
+ display the internals of map buckets or variable values of
911
+ running histograms.
912
+
913
+ If unsure, say N.
914
+
788915 endif # FTRACE
789916
790917 endif # TRACING_SUPPORT