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