xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/debug/mali_kbase_debug_linux_ktrace.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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