xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/midgard/mali_linux_trace.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * (C) COPYRIGHT 2011-2016 ARM Limited. All rights reserved.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * This program is free software and is provided to you under the terms of the
6*4882a593Smuzhiyun  * GNU General Public License version 2 as published by the Free Software
7*4882a593Smuzhiyun  * Foundation, and any use by you of this program is subject to the terms
8*4882a593Smuzhiyun  * of such GNU licence.
9*4882a593Smuzhiyun  *
10*4882a593Smuzhiyun  * A copy of the licence is included with the program, and can also be obtained
11*4882a593Smuzhiyun  * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
12*4882a593Smuzhiyun  * Boston, MA  02110-1301, USA.
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  */
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #if !defined(_TRACE_MALI_H) || defined(TRACE_HEADER_MULTI_READ)
19*4882a593Smuzhiyun #define _TRACE_MALI_H
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #undef TRACE_SYSTEM
22*4882a593Smuzhiyun #define TRACE_SYSTEM mali
23*4882a593Smuzhiyun #define TRACE_INCLUDE_FILE mali_linux_trace
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun #include <linux/tracepoint.h>
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #define MALI_JOB_SLOTS_EVENT_CHANGED
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun /**
30*4882a593Smuzhiyun  * mali_job_slots_event - called from mali_kbase_core_linux.c
31*4882a593Smuzhiyun  * @event_id: ORed together bitfields representing a type of event, made with the GATOR_MAKE_EVENT() macro.
32*4882a593Smuzhiyun  */
33*4882a593Smuzhiyun TRACE_EVENT(mali_job_slots_event,
34*4882a593Smuzhiyun 	TP_PROTO(unsigned int event_id, unsigned int tgid, unsigned int pid,
35*4882a593Smuzhiyun 			unsigned char job_id),
36*4882a593Smuzhiyun 	TP_ARGS(event_id, tgid, pid, job_id),
37*4882a593Smuzhiyun 	TP_STRUCT__entry(
38*4882a593Smuzhiyun 		__field(unsigned int, event_id)
39*4882a593Smuzhiyun 		__field(unsigned int, tgid)
40*4882a593Smuzhiyun 		__field(unsigned int, pid)
41*4882a593Smuzhiyun 		__field(unsigned char, job_id)
42*4882a593Smuzhiyun 	),
43*4882a593Smuzhiyun 	TP_fast_assign(
44*4882a593Smuzhiyun 		__entry->event_id = event_id;
45*4882a593Smuzhiyun 		__entry->tgid = tgid;
46*4882a593Smuzhiyun 		__entry->pid = pid;
47*4882a593Smuzhiyun 		__entry->job_id = job_id;
48*4882a593Smuzhiyun 	),
49*4882a593Smuzhiyun 	TP_printk("event=%u tgid=%u pid=%u job_id=%u",
50*4882a593Smuzhiyun 		__entry->event_id, __entry->tgid, __entry->pid, __entry->job_id)
51*4882a593Smuzhiyun );
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun /**
54*4882a593Smuzhiyun  * mali_pm_status - Called by mali_kbase_pm_driver.c
55*4882a593Smuzhiyun  * @event_id: core type (shader, tiler, l2 cache)
56*4882a593Smuzhiyun  * @value: 64bits bitmask reporting either power status of the cores (1-ON, 0-OFF)
57*4882a593Smuzhiyun  */
58*4882a593Smuzhiyun TRACE_EVENT(mali_pm_status,
59*4882a593Smuzhiyun 	TP_PROTO(unsigned int event_id, unsigned long long value),
60*4882a593Smuzhiyun 	TP_ARGS(event_id, value),
61*4882a593Smuzhiyun 	TP_STRUCT__entry(
62*4882a593Smuzhiyun 		__field(unsigned int, event_id)
63*4882a593Smuzhiyun 		__field(unsigned long long, value)
64*4882a593Smuzhiyun 	),
65*4882a593Smuzhiyun 	TP_fast_assign(
66*4882a593Smuzhiyun 		__entry->event_id = event_id;
67*4882a593Smuzhiyun 		__entry->value = value;
68*4882a593Smuzhiyun 	),
69*4882a593Smuzhiyun 	TP_printk("event %u = %llu", __entry->event_id, __entry->value)
70*4882a593Smuzhiyun );
71*4882a593Smuzhiyun 
72*4882a593Smuzhiyun /**
73*4882a593Smuzhiyun  * mali_pm_power_on - Called by mali_kbase_pm_driver.c
74*4882a593Smuzhiyun  * @event_id: core type (shader, tiler, l2 cache)
75*4882a593Smuzhiyun  * @value: 64bits bitmask reporting the cores to power up
76*4882a593Smuzhiyun  */
77*4882a593Smuzhiyun TRACE_EVENT(mali_pm_power_on,
78*4882a593Smuzhiyun 	TP_PROTO(unsigned int event_id, unsigned long long value),
79*4882a593Smuzhiyun 	TP_ARGS(event_id, value),
80*4882a593Smuzhiyun 	TP_STRUCT__entry(
81*4882a593Smuzhiyun 		__field(unsigned int, event_id)
82*4882a593Smuzhiyun 		__field(unsigned long long, value)
83*4882a593Smuzhiyun 	),
84*4882a593Smuzhiyun 	TP_fast_assign(
85*4882a593Smuzhiyun 		__entry->event_id = event_id;
86*4882a593Smuzhiyun 		__entry->value = value;
87*4882a593Smuzhiyun 	),
88*4882a593Smuzhiyun 	TP_printk("event %u = %llu", __entry->event_id, __entry->value)
89*4882a593Smuzhiyun );
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun /**
92*4882a593Smuzhiyun  * mali_pm_power_off - Called by mali_kbase_pm_driver.c
93*4882a593Smuzhiyun  * @event_id: core type (shader, tiler, l2 cache)
94*4882a593Smuzhiyun  * @value: 64bits bitmask reporting the cores to power down
95*4882a593Smuzhiyun  */
96*4882a593Smuzhiyun TRACE_EVENT(mali_pm_power_off,
97*4882a593Smuzhiyun 	TP_PROTO(unsigned int event_id, unsigned long long value),
98*4882a593Smuzhiyun 	TP_ARGS(event_id, value),
99*4882a593Smuzhiyun 	TP_STRUCT__entry(
100*4882a593Smuzhiyun 		__field(unsigned int, event_id)
101*4882a593Smuzhiyun 		__field(unsigned long long, value)
102*4882a593Smuzhiyun 	),
103*4882a593Smuzhiyun 	TP_fast_assign(
104*4882a593Smuzhiyun 		__entry->event_id = event_id;
105*4882a593Smuzhiyun 		__entry->value = value;
106*4882a593Smuzhiyun 	),
107*4882a593Smuzhiyun 	TP_printk("event %u = %llu", __entry->event_id, __entry->value)
108*4882a593Smuzhiyun );
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun /**
111*4882a593Smuzhiyun  * mali_page_fault_insert_pages - Called by page_fault_worker()
112*4882a593Smuzhiyun  * it reports an MMU page fault resulting in new pages being mapped.
113*4882a593Smuzhiyun  * @event_id: MMU address space number.
114*4882a593Smuzhiyun  * @value: number of newly allocated pages
115*4882a593Smuzhiyun  */
116*4882a593Smuzhiyun TRACE_EVENT(mali_page_fault_insert_pages,
117*4882a593Smuzhiyun 	TP_PROTO(int event_id, unsigned long value),
118*4882a593Smuzhiyun 	TP_ARGS(event_id, value),
119*4882a593Smuzhiyun 	TP_STRUCT__entry(
120*4882a593Smuzhiyun 		__field(int, event_id)
121*4882a593Smuzhiyun 		__field(unsigned long, value)
122*4882a593Smuzhiyun 	),
123*4882a593Smuzhiyun 	TP_fast_assign(
124*4882a593Smuzhiyun 		__entry->event_id = event_id;
125*4882a593Smuzhiyun 		__entry->value = value;
126*4882a593Smuzhiyun 	),
127*4882a593Smuzhiyun 	TP_printk("event %d = %lu", __entry->event_id, __entry->value)
128*4882a593Smuzhiyun );
129*4882a593Smuzhiyun 
130*4882a593Smuzhiyun /**
131*4882a593Smuzhiyun  * mali_mmu_as_in_use - Called by assign_and_activate_kctx_addr_space()
132*4882a593Smuzhiyun  * it reports that a certain MMU address space is in use now.
133*4882a593Smuzhiyun  * @event_id: MMU address space number.
134*4882a593Smuzhiyun  */
135*4882a593Smuzhiyun TRACE_EVENT(mali_mmu_as_in_use,
136*4882a593Smuzhiyun 	TP_PROTO(int event_id),
137*4882a593Smuzhiyun 	TP_ARGS(event_id),
138*4882a593Smuzhiyun 	TP_STRUCT__entry(
139*4882a593Smuzhiyun 		__field(int, event_id)
140*4882a593Smuzhiyun 	),
141*4882a593Smuzhiyun 	TP_fast_assign(
142*4882a593Smuzhiyun 		__entry->event_id = event_id;
143*4882a593Smuzhiyun 	),
144*4882a593Smuzhiyun 	TP_printk("event=%d", __entry->event_id)
145*4882a593Smuzhiyun );
146*4882a593Smuzhiyun 
147*4882a593Smuzhiyun /**
148*4882a593Smuzhiyun  * mali_mmu_as_released - Called by kbasep_js_runpool_release_ctx_internal()
149*4882a593Smuzhiyun  * it reports that a certain MMU address space has been released now.
150*4882a593Smuzhiyun  * @event_id: MMU address space number.
151*4882a593Smuzhiyun  */
152*4882a593Smuzhiyun TRACE_EVENT(mali_mmu_as_released,
153*4882a593Smuzhiyun 	TP_PROTO(int event_id),
154*4882a593Smuzhiyun 	TP_ARGS(event_id),
155*4882a593Smuzhiyun 	TP_STRUCT__entry(
156*4882a593Smuzhiyun 		__field(int, event_id)
157*4882a593Smuzhiyun 	),
158*4882a593Smuzhiyun 	TP_fast_assign(
159*4882a593Smuzhiyun 		__entry->event_id = event_id;
160*4882a593Smuzhiyun 	),
161*4882a593Smuzhiyun 	TP_printk("event=%d", __entry->event_id)
162*4882a593Smuzhiyun );
163*4882a593Smuzhiyun 
164*4882a593Smuzhiyun /**
165*4882a593Smuzhiyun  * mali_total_alloc_pages_change - Called by kbase_atomic_add_pages()
166*4882a593Smuzhiyun  *                                 and by kbase_atomic_sub_pages()
167*4882a593Smuzhiyun  * it reports that the total number of allocated pages is changed.
168*4882a593Smuzhiyun  * @event_id: number of pages to be added or subtracted (according to the sign).
169*4882a593Smuzhiyun  */
170*4882a593Smuzhiyun TRACE_EVENT(mali_total_alloc_pages_change,
171*4882a593Smuzhiyun 	TP_PROTO(long long int event_id),
172*4882a593Smuzhiyun 	TP_ARGS(event_id),
173*4882a593Smuzhiyun 	TP_STRUCT__entry(
174*4882a593Smuzhiyun 		__field(long long int, event_id)
175*4882a593Smuzhiyun 	),
176*4882a593Smuzhiyun 	TP_fast_assign(
177*4882a593Smuzhiyun 		__entry->event_id = event_id;
178*4882a593Smuzhiyun 	),
179*4882a593Smuzhiyun 	TP_printk("event=%lld", __entry->event_id)
180*4882a593Smuzhiyun );
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun #endif				/*  _TRACE_MALI_H */
183*4882a593Smuzhiyun 
184*4882a593Smuzhiyun #undef TRACE_INCLUDE_PATH
185*4882a593Smuzhiyun #undef linux
186*4882a593Smuzhiyun #define TRACE_INCLUDE_PATH .
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun /* This part must be outside protection */
189*4882a593Smuzhiyun #include <trace/define_trace.h>
190