1# SPDX-License-Identifier: BSD-3-Clause
2
3# Trace configs
4
5menu "Trace"
6
7config TRACE
8	bool "Trace"
9	default y
10	help
11	  Enabling traces. All traces (normal and error) are sent by dma.
12
13config TRACEV
14	bool "Trace verbose"
15	depends on TRACE
16	default n
17	help
18	  Enabling verbose traces. tr_dbg() statements depend on this at
19	  compile-time and on run-time filtering below too.
20
21config TRACEE
22	bool "Trace error"
23	depends on TRACE
24	default y
25	help
26	  Sending error traces by mailbox additionally.
27
28config TRACEM
29	bool "Trace mailbox"
30	depends on TRACE
31	default n
32	help
33	  Sending all traces by mailbox additionally.
34
35config TRACE_FILTERING
36	bool "Trace filtering"
37	depends on TRACE
38	default y
39	help
40		Filtering of trace messages based on their verbosity level and frequency.
41
42config TRACE_FILTERING_VERBOSITY
43	bool "Filter by verbosity"
44	depends on TRACE_FILTERING
45	default y
46	help
47		Filtering by log verbosity level, where maximum verbosity allowed is specified for each
48		context and may be adjusted in runtime.
49
50config TRACE_FILTERING_ADAPTIVE
51	bool "Adaptive rate limiting"
52	depends on TRACE_FILTERING
53	default y
54	help
55		Adaptive filtering of trace messages, tracking up to CONFIG_TRACE_RECENT_ENTRIES_COUNT,
56		suppressing all repeated messages for up to CONFIG_TRACE_RECENT_TIME_THRESHOLD cycles.
57
58config TRACE_RECENT_ENTRIES_COUNT
59	int "Amount of entries considered recent"
60	depends on TRACE_FILTERING_ADAPTIVE
61	default 5
62	help
63		Recent entries are used to determine whether currently processed message was sent in the
64		past. Size of that filtering window affects effectiveness and performance. More recent
65		entries allow to better filter repetitive messeges out, but also slightly decrease
66		performance due to increased number of comparisions necessary.
67
68config TRACE_RECENT_TIME_THRESHOLD
69	int "Period of time considered recent (microseconds)"
70	depends on TRACE_FILTERING_ADAPTIVE
71	default 1500
72	range 1 TRACE_RECENT_MAX_TIME
73	help
74		Period of time during which entries are tracked and will be suppressed if reported again.
75
76config TRACE_RECENT_MAX_TIME
77	int "Maximum period of time that message can be suppressed (microseconds)"
78	depends on TRACE_FILTERING_ADAPTIVE
79	default 5000000
80	help
81		Maximum amount of time message can be suppressed for, due to repeated suppression.
82
83config TRACE_BURST_COUNT
84	int "Allowed amount of rapidly repeated messages, that will not be suppressed by the filter"
85	depends on TRACE_FILTERING_ADAPTIVE
86	default 4
87	help
88		Amount of messages that will pass through the filter even if sent in rapid succession.
89		Allowed message burst size before filter suppresses the message.
90
91endmenu
92