1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 3 * 4 * (C) COPYRIGHT 2014, 2018, 2020-2022 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 * NOTE: This must **only** be included through mali_linux_trace.h, 24 * otherwise it will fail to setup tracepoints correctly 25 */ 26 27 #if !defined(_KBASE_DEBUG_LINUX_KTRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 28 #define _KBASE_DEBUG_LINUX_KTRACE_H_ 29 30 #if KBASE_KTRACE_TARGET_FTRACE 31 32 DECLARE_EVENT_CLASS(mali_add_template, 33 TP_PROTO(struct kbase_context *kctx, u64 info_val), 34 TP_ARGS(kctx, info_val), 35 TP_STRUCT__entry( 36 __field(pid_t, kctx_tgid) 37 __field(u32, kctx_id) 38 __field(u64, info_val) 39 ), 40 TP_fast_assign( 41 __entry->kctx_id = (kctx) ? kctx->id : 0u; 42 __entry->kctx_tgid = (kctx) ? kctx->tgid : 0; 43 __entry->info_val = info_val; 44 ), 45 TP_printk("kctx=%d_%u info=0x%llx", __entry->kctx_tgid, 46 __entry->kctx_id, __entry->info_val) 47 ); 48 49 /* DEFINE_MALI_ADD_EVENT is available also to backends for backend-specific 50 * simple trace codes 51 */ 52 #define DEFINE_MALI_ADD_EVENT(name) \ 53 DEFINE_EVENT(mali_add_template, mali_##name, \ 54 TP_PROTO(struct kbase_context *kctx, u64 info_val), \ 55 TP_ARGS(kctx, info_val)) 56 DEFINE_MALI_ADD_EVENT(CORE_CTX_DESTROY); 57 DEFINE_MALI_ADD_EVENT(CORE_CTX_HWINSTR_TERM); 58 DEFINE_MALI_ADD_EVENT(CORE_GPU_IRQ); 59 DEFINE_MALI_ADD_EVENT(CORE_GPU_IRQ_CLEAR); 60 DEFINE_MALI_ADD_EVENT(CORE_GPU_IRQ_DONE); 61 DEFINE_MALI_ADD_EVENT(CORE_GPU_SOFT_RESET); 62 DEFINE_MALI_ADD_EVENT(CORE_GPU_HARD_RESET); 63 DEFINE_MALI_ADD_EVENT(CORE_GPU_PRFCNT_SAMPLE); 64 DEFINE_MALI_ADD_EVENT(CORE_GPU_PRFCNT_CLEAR); 65 DEFINE_MALI_ADD_EVENT(CORE_GPU_CLEAN_INV_CACHES); 66 DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_DESIRED); 67 DEFINE_MALI_ADD_EVENT(PM_JOB_SUBMIT_AFTER_POWERING_UP); 68 DEFINE_MALI_ADD_EVENT(PM_JOB_SUBMIT_AFTER_POWERED_UP); 69 DEFINE_MALI_ADD_EVENT(PM_PWRON); 70 DEFINE_MALI_ADD_EVENT(PM_PWRON_TILER); 71 DEFINE_MALI_ADD_EVENT(PM_PWRON_L2); 72 DEFINE_MALI_ADD_EVENT(PM_PWROFF); 73 DEFINE_MALI_ADD_EVENT(PM_PWROFF_TILER); 74 DEFINE_MALI_ADD_EVENT(PM_PWROFF_L2); 75 DEFINE_MALI_ADD_EVENT(PM_CORES_POWERED); 76 DEFINE_MALI_ADD_EVENT(PM_CORES_POWERED_TILER); 77 DEFINE_MALI_ADD_EVENT(PM_CORES_POWERED_L2); 78 DEFINE_MALI_ADD_EVENT(PM_DESIRED_REACHED); 79 DEFINE_MALI_ADD_EVENT(PM_DESIRED_REACHED_TILER); 80 DEFINE_MALI_ADD_EVENT(PM_REQUEST_CHANGE_SHADER_NEEDED); 81 DEFINE_MALI_ADD_EVENT(PM_REQUEST_CHANGE_TILER_NEEDED); 82 DEFINE_MALI_ADD_EVENT(PM_RELEASE_CHANGE_SHADER_NEEDED); 83 DEFINE_MALI_ADD_EVENT(PM_RELEASE_CHANGE_TILER_NEEDED); 84 DEFINE_MALI_ADD_EVENT(PM_CORES_AVAILABLE); 85 DEFINE_MALI_ADD_EVENT(PM_CORES_AVAILABLE_TILER); 86 DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_AVAILABLE); 87 DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_AVAILABLE_TILER); 88 DEFINE_MALI_ADD_EVENT(PM_CORES_CHANGE_AVAILABLE_L2); 89 DEFINE_MALI_ADD_EVENT(PM_GPU_ON); 90 DEFINE_MALI_ADD_EVENT(PM_GPU_OFF); 91 DEFINE_MALI_ADD_EVENT(PM_SET_POLICY); 92 DEFINE_MALI_ADD_EVENT(PM_CURRENT_POLICY_INIT); 93 DEFINE_MALI_ADD_EVENT(PM_CURRENT_POLICY_TERM); 94 DEFINE_MALI_ADD_EVENT(PM_CA_SET_POLICY); 95 DEFINE_MALI_ADD_EVENT(PM_CONTEXT_ACTIVE); 96 DEFINE_MALI_ADD_EVENT(PM_CONTEXT_IDLE); 97 DEFINE_MALI_ADD_EVENT(PM_WAKE_WAITERS); 98 DEFINE_MALI_ADD_EVENT(PM_POWEROFF_WAIT_WQ); 99 DEFINE_MALI_ADD_EVENT(PM_RUNTIME_SUSPEND_CALLBACK); 100 DEFINE_MALI_ADD_EVENT(PM_RUNTIME_RESUME_CALLBACK); 101 #define KBASEP_L2_STATE(n) DEFINE_MALI_ADD_EVENT(PM_L2_ ## n); 102 #include "backend/gpu/mali_kbase_pm_l2_states.h" 103 #undef KBASEP_L2_STATE 104 DEFINE_MALI_ADD_EVENT(SCHED_RETAIN_CTX_NOLOCK); 105 DEFINE_MALI_ADD_EVENT(SCHED_RELEASE_CTX); 106 #ifdef CONFIG_MALI_ARBITER_SUPPORT 107 108 DEFINE_MALI_ADD_EVENT(ARB_GPU_LOST); 109 DEFINE_MALI_ADD_EVENT(ARB_VM_STATE); 110 DEFINE_MALI_ADD_EVENT(ARB_VM_EVT); 111 112 #endif 113 #if MALI_USE_CSF 114 #include "backend/mali_kbase_debug_linux_ktrace_csf.h" 115 #else 116 #include "backend/mali_kbase_debug_linux_ktrace_jm.h" 117 #endif 118 119 #undef DEFINE_MALI_ADD_EVENT 120 121 #endif /* KBASE_KTRACE_TARGET_FTRACE */ 122 123 #endif /* !defined(_KBASE_DEBUG_LINUX_KTRACE_H_) || defined(TRACE_HEADER_MULTI_READ) */ 124