1 /* 2 * 3 * (C) COPYRIGHT 2012-2016 ARM Limited. All rights reserved. 4 * 5 * This program is free software and is provided to you under the terms of the 6 * GNU General Public License version 2 as published by the Free Software 7 * Foundation, and any use by you of this program is subject to the terms 8 * of such GNU licence. 9 * 10 * A copy of the licence is included with the program, and can also be obtained 11 * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 12 * Boston, MA 02110-1301, USA. 13 * 14 */ 15 16 17 18 19 20 #undef TRACE_SYSTEM 21 #define TRACE_SYSTEM mali_timeline 22 23 #if !defined(_MALI_TIMELINE_H) || defined(TRACE_HEADER_MULTI_READ) 24 #define _MALI_TIMELINE_H 25 26 #include <linux/tracepoint.h> 27 28 TRACE_EVENT(mali_timeline_atoms_in_flight, 29 30 TP_PROTO(u64 ts_sec, 31 u32 ts_nsec, 32 int tgid, 33 int count), 34 35 TP_ARGS(ts_sec, 36 ts_nsec, 37 tgid, 38 count), 39 40 TP_STRUCT__entry( 41 __field(u64, ts_sec) 42 __field(u32, ts_nsec) 43 __field(int, tgid) 44 __field(int, count) 45 ), 46 47 TP_fast_assign( 48 __entry->ts_sec = ts_sec; 49 __entry->ts_nsec = ts_nsec; 50 __entry->tgid = tgid; 51 __entry->count = count; 52 ), 53 54 TP_printk("%i,%i.%.9i,%i,%i", CTX_SET_NR_ATOMS_IN_FLIGHT, 55 (int)__entry->ts_sec, 56 (int)__entry->ts_nsec, 57 __entry->tgid, 58 __entry->count) 59 ); 60 61 62 TRACE_EVENT(mali_timeline_atom, 63 64 TP_PROTO(u64 ts_sec, 65 u32 ts_nsec, 66 int event_type, 67 int tgid, 68 int atom_id), 69 70 TP_ARGS(ts_sec, 71 ts_nsec, 72 event_type, 73 tgid, 74 atom_id), 75 76 TP_STRUCT__entry( 77 __field(u64, ts_sec) 78 __field(u32, ts_nsec) 79 __field(int, event_type) 80 __field(int, tgid) 81 __field(int, atom_id) 82 ), 83 84 TP_fast_assign( 85 __entry->ts_sec = ts_sec; 86 __entry->ts_nsec = ts_nsec; 87 __entry->event_type = event_type; 88 __entry->tgid = tgid; 89 __entry->atom_id = atom_id; 90 ), 91 92 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type, 93 (int)__entry->ts_sec, 94 (int)__entry->ts_nsec, 95 __entry->tgid, 96 __entry->atom_id, 97 __entry->atom_id) 98 ); 99 100 TRACE_EVENT(mali_timeline_gpu_slot_active, 101 102 TP_PROTO(u64 ts_sec, 103 u32 ts_nsec, 104 int event_type, 105 int tgid, 106 int js, 107 int count), 108 109 TP_ARGS(ts_sec, 110 ts_nsec, 111 event_type, 112 tgid, 113 js, 114 count), 115 116 TP_STRUCT__entry( 117 __field(u64, ts_sec) 118 __field(u32, ts_nsec) 119 __field(int, event_type) 120 __field(int, tgid) 121 __field(int, js) 122 __field(int, count) 123 ), 124 125 TP_fast_assign( 126 __entry->ts_sec = ts_sec; 127 __entry->ts_nsec = ts_nsec; 128 __entry->event_type = event_type; 129 __entry->tgid = tgid; 130 __entry->js = js; 131 __entry->count = count; 132 ), 133 134 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type, 135 (int)__entry->ts_sec, 136 (int)__entry->ts_nsec, 137 __entry->tgid, 138 __entry->js, 139 __entry->count) 140 ); 141 142 TRACE_EVENT(mali_timeline_gpu_slot_action, 143 144 TP_PROTO(u64 ts_sec, 145 u32 ts_nsec, 146 int event_type, 147 int tgid, 148 int js, 149 int count), 150 151 TP_ARGS(ts_sec, 152 ts_nsec, 153 event_type, 154 tgid, 155 js, 156 count), 157 158 TP_STRUCT__entry( 159 __field(u64, ts_sec) 160 __field(u32, ts_nsec) 161 __field(int, event_type) 162 __field(int, tgid) 163 __field(int, js) 164 __field(int, count) 165 ), 166 167 TP_fast_assign( 168 __entry->ts_sec = ts_sec; 169 __entry->ts_nsec = ts_nsec; 170 __entry->event_type = event_type; 171 __entry->tgid = tgid; 172 __entry->js = js; 173 __entry->count = count; 174 ), 175 176 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type, 177 (int)__entry->ts_sec, 178 (int)__entry->ts_nsec, 179 __entry->tgid, 180 __entry->js, 181 __entry->count) 182 ); 183 184 TRACE_EVENT(mali_timeline_gpu_power_active, 185 186 TP_PROTO(u64 ts_sec, 187 u32 ts_nsec, 188 int event_type, 189 int active), 190 191 TP_ARGS(ts_sec, 192 ts_nsec, 193 event_type, 194 active), 195 196 TP_STRUCT__entry( 197 __field(u64, ts_sec) 198 __field(u32, ts_nsec) 199 __field(int, event_type) 200 __field(int, active) 201 ), 202 203 TP_fast_assign( 204 __entry->ts_sec = ts_sec; 205 __entry->ts_nsec = ts_nsec; 206 __entry->event_type = event_type; 207 __entry->active = active; 208 ), 209 210 TP_printk("%i,%i.%.9i,0,%i", __entry->event_type, 211 (int)__entry->ts_sec, 212 (int)__entry->ts_nsec, 213 __entry->active) 214 215 ); 216 217 TRACE_EVENT(mali_timeline_l2_power_active, 218 219 TP_PROTO(u64 ts_sec, 220 u32 ts_nsec, 221 int event_type, 222 int state), 223 224 TP_ARGS(ts_sec, 225 ts_nsec, 226 event_type, 227 state), 228 229 TP_STRUCT__entry( 230 __field(u64, ts_sec) 231 __field(u32, ts_nsec) 232 __field(int, event_type) 233 __field(int, state) 234 ), 235 236 TP_fast_assign( 237 __entry->ts_sec = ts_sec; 238 __entry->ts_nsec = ts_nsec; 239 __entry->event_type = event_type; 240 __entry->state = state; 241 ), 242 243 TP_printk("%i,%i.%.9i,0,%i", __entry->event_type, 244 (int)__entry->ts_sec, 245 (int)__entry->ts_nsec, 246 __entry->state) 247 248 ); 249 TRACE_EVENT(mali_timeline_pm_event, 250 251 TP_PROTO(u64 ts_sec, 252 u32 ts_nsec, 253 int event_type, 254 int pm_event_type, 255 unsigned int pm_event_id), 256 257 TP_ARGS(ts_sec, 258 ts_nsec, 259 event_type, 260 pm_event_type, 261 pm_event_id), 262 263 TP_STRUCT__entry( 264 __field(u64, ts_sec) 265 __field(u32, ts_nsec) 266 __field(int, event_type) 267 __field(int, pm_event_type) 268 __field(unsigned int, pm_event_id) 269 ), 270 271 TP_fast_assign( 272 __entry->ts_sec = ts_sec; 273 __entry->ts_nsec = ts_nsec; 274 __entry->event_type = event_type; 275 __entry->pm_event_type = pm_event_type; 276 __entry->pm_event_id = pm_event_id; 277 ), 278 279 TP_printk("%i,%i.%.9i,0,%i,%u", __entry->event_type, 280 (int)__entry->ts_sec, 281 (int)__entry->ts_nsec, 282 __entry->pm_event_type, __entry->pm_event_id) 283 284 ); 285 286 TRACE_EVENT(mali_timeline_slot_atom, 287 288 TP_PROTO(u64 ts_sec, 289 u32 ts_nsec, 290 int event_type, 291 int tgid, 292 int js, 293 int atom_id), 294 295 TP_ARGS(ts_sec, 296 ts_nsec, 297 event_type, 298 tgid, 299 js, 300 atom_id), 301 302 TP_STRUCT__entry( 303 __field(u64, ts_sec) 304 __field(u32, ts_nsec) 305 __field(int, event_type) 306 __field(int, tgid) 307 __field(int, js) 308 __field(int, atom_id) 309 ), 310 311 TP_fast_assign( 312 __entry->ts_sec = ts_sec; 313 __entry->ts_nsec = ts_nsec; 314 __entry->event_type = event_type; 315 __entry->tgid = tgid; 316 __entry->js = js; 317 __entry->atom_id = atom_id; 318 ), 319 320 TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type, 321 (int)__entry->ts_sec, 322 (int)__entry->ts_nsec, 323 __entry->tgid, 324 __entry->js, 325 __entry->atom_id) 326 ); 327 328 TRACE_EVENT(mali_timeline_pm_checktrans, 329 330 TP_PROTO(u64 ts_sec, 331 u32 ts_nsec, 332 int trans_code, 333 int trans_id), 334 335 TP_ARGS(ts_sec, 336 ts_nsec, 337 trans_code, 338 trans_id), 339 340 TP_STRUCT__entry( 341 __field(u64, ts_sec) 342 __field(u32, ts_nsec) 343 __field(int, trans_code) 344 __field(int, trans_id) 345 ), 346 347 TP_fast_assign( 348 __entry->ts_sec = ts_sec; 349 __entry->ts_nsec = ts_nsec; 350 __entry->trans_code = trans_code; 351 __entry->trans_id = trans_id; 352 ), 353 354 TP_printk("%i,%i.%.9i,0,%i", __entry->trans_code, 355 (int)__entry->ts_sec, 356 (int)__entry->ts_nsec, 357 __entry->trans_id) 358 359 ); 360 361 TRACE_EVENT(mali_timeline_context_active, 362 363 TP_PROTO(u64 ts_sec, 364 u32 ts_nsec, 365 int count), 366 367 TP_ARGS(ts_sec, 368 ts_nsec, 369 count), 370 371 TP_STRUCT__entry( 372 __field(u64, ts_sec) 373 __field(u32, ts_nsec) 374 __field(int, count) 375 ), 376 377 TP_fast_assign( 378 __entry->ts_sec = ts_sec; 379 __entry->ts_nsec = ts_nsec; 380 __entry->count = count; 381 ), 382 383 TP_printk("%i,%i.%.9i,0,%i", SW_SET_CONTEXT_ACTIVE, 384 (int)__entry->ts_sec, 385 (int)__entry->ts_nsec, 386 __entry->count) 387 ); 388 389 #endif /* _MALI_TIMELINE_H */ 390 391 #undef TRACE_INCLUDE_PATH 392 #define TRACE_INCLUDE_PATH . 393 394 /* This part must be outside protection */ 395 #include <trace/define_trace.h> 396 397