xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/debug/backend/mali_kbase_debug_ktrace_codes_jm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 /*
3  *
4  * (C) COPYRIGHT 2011-2015, 2018-2021 ARM Limited. All rights reserved.
5  *
6  * This program is free software and is provided to you under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation, and any use by you of this program is subject to the terms
9  * of such GNU license.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you can access it online at
18  * http://www.gnu.org/licenses/gpl-2.0.html.
19  *
20  */
21 
22 /*
23  * ***** IMPORTANT: THIS IS NOT A NORMAL HEADER FILE         *****
24  * *****            DO NOT INCLUDE DIRECTLY                  *****
25  * *****            THE LACK OF HEADER GUARDS IS INTENTIONAL *****
26  */
27 
28 /*
29  * The purpose of this header file is just to contain a list of trace code
30  * identifiers
31  *
32  * When updating this file, also remember to update
33  * mali_kbase_debug_linux_ktrace_jm.h
34  *
35  * IMPORTANT: THIS FILE MUST NOT BE USED FOR ANY OTHER PURPOSE OTHER THAN THAT
36  * DESCRIBED IN mali_kbase_debug_ktrace_codes.h
37  */
38 
39 #if 0 /* Dummy section to avoid breaking formatting */
40 int dummy_array[] = {
41 #endif
42 
43 	/*
44 	 * Job Slot management events
45 	 */
46 	/* info_val==irq rawstat at start */
47 	KBASE_KTRACE_CODE_MAKE_CODE(JM_IRQ),
48 	/* info_val==jobs processed */
49 	KBASE_KTRACE_CODE_MAKE_CODE(JM_IRQ_END),
50 	/* In the following:
51 	 *
52 	 * - ctx is set if a corresponding job found (NULL otherwise, e.g. some
53 	 *   soft-stop cases)
54 	 * - uatom==kernel-side mapped uatom address (for correlation with
55 	 *   user-side)
56 	 */
57 	/* info_val==exit code; gpu_addr==chain gpuaddr */
58 	KBASE_KTRACE_CODE_MAKE_CODE(JM_JOB_DONE),
59 	/* gpu_addr==JS_HEAD read
60 	 * info_val==event code
61 	 */
62 	KBASE_KTRACE_CODE_MAKE_CODE(JM_RETURN_ATOM_TO_JS),
63 	/* gpu_addr==JS_HEAD read
64 	 * info_val==event code
65 	 */
66 	KBASE_KTRACE_CODE_MAKE_CODE(JM_MARK_FOR_RETURN_TO_JS),
67 	/* gpu_addr==JS_HEAD_NEXT written, info_val==lower 32 bits of
68 	 * affinity
69 	 */
70 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SUBMIT),
71 	/* gpu_addr is as follows:
72 	 * - If JS_STATUS active after soft-stop, val==gpu addr written to
73 	 *   JS_HEAD on submit
74 	 * - otherwise gpu_addr==0
75 	 */
76 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SOFTSTOP),
77 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SOFTSTOP_0),
78 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SOFTSTOP_1),
79 	/* gpu_addr==JS_HEAD read */
80 	KBASE_KTRACE_CODE_MAKE_CODE(JM_HARDSTOP),
81 	/* gpu_addr==JS_HEAD read */
82 	KBASE_KTRACE_CODE_MAKE_CODE(JM_HARDSTOP_0),
83 	/* gpu_addr==JS_HEAD read */
84 	KBASE_KTRACE_CODE_MAKE_CODE(JM_HARDSTOP_1),
85 	/* gpu_addr==JS_TAIL read */
86 	KBASE_KTRACE_CODE_MAKE_CODE(JM_UPDATE_HEAD),
87 	/* gpu_addr is as follows:
88 	 * - If JS_STATUS active before soft-stop, val==JS_HEAD
89 	 * - otherwise gpu_addr==0
90 	 */
91 	/* gpu_addr==JS_HEAD read */
92 	KBASE_KTRACE_CODE_MAKE_CODE(JM_CHECK_HEAD),
93 	KBASE_KTRACE_CODE_MAKE_CODE(JM_FLUSH_WORKQS),
94 	KBASE_KTRACE_CODE_MAKE_CODE(JM_FLUSH_WORKQS_DONE),
95 	/* info_val == is_scheduled */
96 	KBASE_KTRACE_CODE_MAKE_CODE(JM_ZAP_NON_SCHEDULED),
97 	/* info_val == is_scheduled */
98 	KBASE_KTRACE_CODE_MAKE_CODE(JM_ZAP_SCHEDULED),
99 	KBASE_KTRACE_CODE_MAKE_CODE(JM_ZAP_DONE),
100 	/* info_val == nr jobs submitted */
101 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SLOT_SOFT_OR_HARD_STOP),
102 	/* gpu_addr==JS_HEAD_NEXT last written */
103 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SLOT_EVICT),
104 	KBASE_KTRACE_CODE_MAKE_CODE(JM_SUBMIT_AFTER_RESET),
105 	KBASE_KTRACE_CODE_MAKE_CODE(JM_BEGIN_RESET_WORKER),
106 	KBASE_KTRACE_CODE_MAKE_CODE(JM_END_RESET_WORKER),
107 	/*
108 	 * Job dispatch events
109 	 */
110 	/* gpu_addr==value to write into JS_HEAD */
111 	KBASE_KTRACE_CODE_MAKE_CODE(JD_DONE),
112 	/* gpu_addr==value to write into JS_HEAD */
113 	KBASE_KTRACE_CODE_MAKE_CODE(JD_DONE_WORKER),
114 	/* gpu_addr==value to write into JS_HEAD */
115 	KBASE_KTRACE_CODE_MAKE_CODE(JD_DONE_WORKER_END),
116 	/* gpu_addr==value to write into JS_HEAD */
117 	KBASE_KTRACE_CODE_MAKE_CODE(JD_DONE_TRY_RUN_NEXT_JOB),
118 	/* gpu_addr==0, info_val==0, uatom==0 */
119 	KBASE_KTRACE_CODE_MAKE_CODE(JD_ZAP_CONTEXT),
120 	/* gpu_addr==value to write into JS_HEAD */
121 	KBASE_KTRACE_CODE_MAKE_CODE(JD_CANCEL),
122 	/* gpu_addr==value to write into JS_HEAD */
123 	KBASE_KTRACE_CODE_MAKE_CODE(JD_CANCEL_WORKER),
124 	/*
125 	 * Scheduler Core events
126 	 */
127 	/* gpu_addr==value to write into JS_HEAD */
128 	KBASE_KTRACE_CODE_MAKE_CODE(JS_ADD_JOB),
129 	/* gpu_addr==last value written/would be written to JS_HEAD */
130 	KBASE_KTRACE_CODE_MAKE_CODE(JS_REMOVE_JOB),
131 	/* gpu_addr==value to write into JS_HEAD
132 	 * info_val==priority of atom as a KBASE_JS_ATOM_SCHED_PRIO_<...> value
133 	 * (0 highest)
134 	 */
135 	KBASE_KTRACE_CODE_MAKE_CODE(JS_PULL_JOB),
136 	/* gpu_addr==value that would be written to JS_HEAD if run again */
137 	KBASE_KTRACE_CODE_MAKE_CODE(JS_UNPULL_JOB),
138 	KBASE_KTRACE_CODE_MAKE_CODE(JS_TRY_SCHEDULE_HEAD_CTX),
139 	/* gpu_addr==value to write into JS_HEAD */
140 	KBASE_KTRACE_CODE_MAKE_CODE(JS_JOB_DONE_TRY_RUN_NEXT_JOB),
141 	/* gpu_addr==value to write into JS_HEAD */
142 	KBASE_KTRACE_CODE_MAKE_CODE(JS_JOB_DONE_RETRY_NEEDED),
143 	KBASE_KTRACE_CODE_MAKE_CODE(JS_AFFINITY_SUBMIT_TO_BLOCKED),
144 	/* info_val == lower 32 bits of affinity */
145 	KBASE_KTRACE_CODE_MAKE_CODE(JS_AFFINITY_CURRENT),
146 	/* info_val == lower 32 bits of affinity */
147 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CORE_REF_REQUEST_CORES_FAILED),
148 	/* info_val == lower 32 bits of affinity */
149 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CORE_REF_REGISTER_INUSE_FAILED),
150 	/* info_val == lower 32 bits of rechecked affinity */
151 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CORE_REF_REQUEST_ON_RECHECK_FAILED),
152 	/* info_val == lower 32 bits of rechecked affinity */
153 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CORE_REF_REGISTER_ON_RECHECK_FAILED),
154 	/* info_val == lower 32 bits of affinity */
155 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CORE_REF_AFFINITY_WOULD_VIOLATE),
156 	/* info_val == the ctx attribute now on ctx */
157 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_ON_CTX),
158 	/* info_val == the ctx attribute now on runpool */
159 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_ON_RUNPOOL),
160 	/* info_val == the ctx attribute now off ctx */
161 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_OFF_CTX),
162 	/* info_val == the ctx attribute now off runpool */
163 	KBASE_KTRACE_CODE_MAKE_CODE(JS_CTX_ATTR_NOW_OFF_RUNPOOL),
164 	/* gpu_addr==value to write into JS_HEAD */
165 	KBASE_KTRACE_CODE_MAKE_CODE(JS_RETURN_WORKER),
166 	/* gpu_addr==value to write into JS_HEAD */
167 	KBASE_KTRACE_CODE_MAKE_CODE(JS_RETURN_WORKER_END),
168 	/* info_val==priority level blocked (0 highest) */
169 	KBASE_KTRACE_CODE_MAKE_CODE(JS_SLOT_PRIO_BLOCKED),
170 	/* info_val==priority level unblocked (0 highest)
171 	 * note that the priority level may still be blocked on higher levels
172 	 */
173 	KBASE_KTRACE_CODE_MAKE_CODE(JS_SLOT_PRIO_UNBLOCKED),
174 	/* gpu_addr==value to write into JS_HEAD
175 	 * info_val==priority level unblocked - priorities at this and higher
176 	 *           are unblocked (0 highest)
177 	 */
178 	KBASE_KTRACE_CODE_MAKE_CODE(JS_SLOT_PRIO_AND_HIGHER_UNBLOCKED),
179 	/* gpu_addr==value to write into JS_HEAD
180 	 * info_val==priority level blocked (0 highest)
181 	 */
182 	KBASE_KTRACE_CODE_MAKE_CODE(JS_SLOT_PRIO_IS_BLOCKED),
183 	/*
184 	 * Scheduler Policy events
185 	 */
186 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_INIT_CTX),
187 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_TERM_CTX),
188 	/* info_val == whether it was evicted */
189 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_TRY_EVICT_CTX),
190 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_FOREACH_CTX_JOBS),
191 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_ENQUEUE_CTX),
192 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_DEQUEUE_HEAD_CTX),
193 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_RUNPOOL_ADD_CTX),
194 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_RUNPOOL_REMOVE_CTX),
195 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_DEQUEUE_JOB),
196 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_DEQUEUE_JOB_IRQ),
197 	/* gpu_addr==JS_HEAD to write if the job were run */
198 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_ENQUEUE_JOB),
199 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_TIMER_START),
200 	KBASE_KTRACE_CODE_MAKE_CODE(JS_POLICY_TIMER_END),
201 
202 #if 0 /* Dummy section to avoid breaking formatting */
203 };
204 #endif
205 
206 /* ***** THE LACK OF HEADER GUARDS IS INTENTIONAL ***** */
207