mali_timeline.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  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. #undef TRACE_SYSTEM
  16. #define TRACE_SYSTEM mali_timeline
  17. #if !defined(_MALI_TIMELINE_H) || defined(TRACE_HEADER_MULTI_READ)
  18. #define _MALI_TIMELINE_H
  19. #include <linux/tracepoint.h>
  20. TRACE_EVENT(mali_timeline_atoms_in_flight,
  21. TP_PROTO(u64 ts_sec,
  22. u32 ts_nsec,
  23. int tgid,
  24. int count),
  25. TP_ARGS(ts_sec,
  26. ts_nsec,
  27. tgid,
  28. count),
  29. TP_STRUCT__entry(
  30. __field(u64, ts_sec)
  31. __field(u32, ts_nsec)
  32. __field(int, tgid)
  33. __field(int, count)
  34. ),
  35. TP_fast_assign(
  36. __entry->ts_sec = ts_sec;
  37. __entry->ts_nsec = ts_nsec;
  38. __entry->tgid = tgid;
  39. __entry->count = count;
  40. ),
  41. TP_printk("%i,%i.%.9i,%i,%i", CTX_SET_NR_ATOMS_IN_FLIGHT,
  42. (int)__entry->ts_sec,
  43. (int)__entry->ts_nsec,
  44. __entry->tgid,
  45. __entry->count)
  46. );
  47. TRACE_EVENT(mali_timeline_atom,
  48. TP_PROTO(u64 ts_sec,
  49. u32 ts_nsec,
  50. int event_type,
  51. int tgid,
  52. int atom_id),
  53. TP_ARGS(ts_sec,
  54. ts_nsec,
  55. event_type,
  56. tgid,
  57. atom_id),
  58. TP_STRUCT__entry(
  59. __field(u64, ts_sec)
  60. __field(u32, ts_nsec)
  61. __field(int, event_type)
  62. __field(int, tgid)
  63. __field(int, atom_id)
  64. ),
  65. TP_fast_assign(
  66. __entry->ts_sec = ts_sec;
  67. __entry->ts_nsec = ts_nsec;
  68. __entry->event_type = event_type;
  69. __entry->tgid = tgid;
  70. __entry->atom_id = atom_id;
  71. ),
  72. TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
  73. (int)__entry->ts_sec,
  74. (int)__entry->ts_nsec,
  75. __entry->tgid,
  76. __entry->atom_id,
  77. __entry->atom_id)
  78. );
  79. TRACE_EVENT(mali_timeline_gpu_slot_active,
  80. TP_PROTO(u64 ts_sec,
  81. u32 ts_nsec,
  82. int event_type,
  83. int tgid,
  84. int js,
  85. int count),
  86. TP_ARGS(ts_sec,
  87. ts_nsec,
  88. event_type,
  89. tgid,
  90. js,
  91. count),
  92. TP_STRUCT__entry(
  93. __field(u64, ts_sec)
  94. __field(u32, ts_nsec)
  95. __field(int, event_type)
  96. __field(int, tgid)
  97. __field(int, js)
  98. __field(int, count)
  99. ),
  100. TP_fast_assign(
  101. __entry->ts_sec = ts_sec;
  102. __entry->ts_nsec = ts_nsec;
  103. __entry->event_type = event_type;
  104. __entry->tgid = tgid;
  105. __entry->js = js;
  106. __entry->count = count;
  107. ),
  108. TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
  109. (int)__entry->ts_sec,
  110. (int)__entry->ts_nsec,
  111. __entry->tgid,
  112. __entry->js,
  113. __entry->count)
  114. );
  115. TRACE_EVENT(mali_timeline_gpu_slot_action,
  116. TP_PROTO(u64 ts_sec,
  117. u32 ts_nsec,
  118. int event_type,
  119. int tgid,
  120. int js,
  121. int count),
  122. TP_ARGS(ts_sec,
  123. ts_nsec,
  124. event_type,
  125. tgid,
  126. js,
  127. count),
  128. TP_STRUCT__entry(
  129. __field(u64, ts_sec)
  130. __field(u32, ts_nsec)
  131. __field(int, event_type)
  132. __field(int, tgid)
  133. __field(int, js)
  134. __field(int, count)
  135. ),
  136. TP_fast_assign(
  137. __entry->ts_sec = ts_sec;
  138. __entry->ts_nsec = ts_nsec;
  139. __entry->event_type = event_type;
  140. __entry->tgid = tgid;
  141. __entry->js = js;
  142. __entry->count = count;
  143. ),
  144. TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
  145. (int)__entry->ts_sec,
  146. (int)__entry->ts_nsec,
  147. __entry->tgid,
  148. __entry->js,
  149. __entry->count)
  150. );
  151. TRACE_EVENT(mali_timeline_gpu_power_active,
  152. TP_PROTO(u64 ts_sec,
  153. u32 ts_nsec,
  154. int event_type,
  155. int active),
  156. TP_ARGS(ts_sec,
  157. ts_nsec,
  158. event_type,
  159. active),
  160. TP_STRUCT__entry(
  161. __field(u64, ts_sec)
  162. __field(u32, ts_nsec)
  163. __field(int, event_type)
  164. __field(int, active)
  165. ),
  166. TP_fast_assign(
  167. __entry->ts_sec = ts_sec;
  168. __entry->ts_nsec = ts_nsec;
  169. __entry->event_type = event_type;
  170. __entry->active = active;
  171. ),
  172. TP_printk("%i,%i.%.9i,0,%i", __entry->event_type,
  173. (int)__entry->ts_sec,
  174. (int)__entry->ts_nsec,
  175. __entry->active)
  176. );
  177. TRACE_EVENT(mali_timeline_l2_power_active,
  178. TP_PROTO(u64 ts_sec,
  179. u32 ts_nsec,
  180. int event_type,
  181. int state),
  182. TP_ARGS(ts_sec,
  183. ts_nsec,
  184. event_type,
  185. state),
  186. TP_STRUCT__entry(
  187. __field(u64, ts_sec)
  188. __field(u32, ts_nsec)
  189. __field(int, event_type)
  190. __field(int, state)
  191. ),
  192. TP_fast_assign(
  193. __entry->ts_sec = ts_sec;
  194. __entry->ts_nsec = ts_nsec;
  195. __entry->event_type = event_type;
  196. __entry->state = state;
  197. ),
  198. TP_printk("%i,%i.%.9i,0,%i", __entry->event_type,
  199. (int)__entry->ts_sec,
  200. (int)__entry->ts_nsec,
  201. __entry->state)
  202. );
  203. TRACE_EVENT(mali_timeline_pm_event,
  204. TP_PROTO(u64 ts_sec,
  205. u32 ts_nsec,
  206. int event_type,
  207. int pm_event_type,
  208. unsigned int pm_event_id),
  209. TP_ARGS(ts_sec,
  210. ts_nsec,
  211. event_type,
  212. pm_event_type,
  213. pm_event_id),
  214. TP_STRUCT__entry(
  215. __field(u64, ts_sec)
  216. __field(u32, ts_nsec)
  217. __field(int, event_type)
  218. __field(int, pm_event_type)
  219. __field(unsigned int, pm_event_id)
  220. ),
  221. TP_fast_assign(
  222. __entry->ts_sec = ts_sec;
  223. __entry->ts_nsec = ts_nsec;
  224. __entry->event_type = event_type;
  225. __entry->pm_event_type = pm_event_type;
  226. __entry->pm_event_id = pm_event_id;
  227. ),
  228. TP_printk("%i,%i.%.9i,0,%i,%u", __entry->event_type,
  229. (int)__entry->ts_sec,
  230. (int)__entry->ts_nsec,
  231. __entry->pm_event_type, __entry->pm_event_id)
  232. );
  233. TRACE_EVENT(mali_timeline_slot_atom,
  234. TP_PROTO(u64 ts_sec,
  235. u32 ts_nsec,
  236. int event_type,
  237. int tgid,
  238. int js,
  239. int atom_id),
  240. TP_ARGS(ts_sec,
  241. ts_nsec,
  242. event_type,
  243. tgid,
  244. js,
  245. atom_id),
  246. TP_STRUCT__entry(
  247. __field(u64, ts_sec)
  248. __field(u32, ts_nsec)
  249. __field(int, event_type)
  250. __field(int, tgid)
  251. __field(int, js)
  252. __field(int, atom_id)
  253. ),
  254. TP_fast_assign(
  255. __entry->ts_sec = ts_sec;
  256. __entry->ts_nsec = ts_nsec;
  257. __entry->event_type = event_type;
  258. __entry->tgid = tgid;
  259. __entry->js = js;
  260. __entry->atom_id = atom_id;
  261. ),
  262. TP_printk("%i,%i.%.9i,%i,%i,%i", __entry->event_type,
  263. (int)__entry->ts_sec,
  264. (int)__entry->ts_nsec,
  265. __entry->tgid,
  266. __entry->js,
  267. __entry->atom_id)
  268. );
  269. TRACE_EVENT(mali_timeline_pm_checktrans,
  270. TP_PROTO(u64 ts_sec,
  271. u32 ts_nsec,
  272. int trans_code,
  273. int trans_id),
  274. TP_ARGS(ts_sec,
  275. ts_nsec,
  276. trans_code,
  277. trans_id),
  278. TP_STRUCT__entry(
  279. __field(u64, ts_sec)
  280. __field(u32, ts_nsec)
  281. __field(int, trans_code)
  282. __field(int, trans_id)
  283. ),
  284. TP_fast_assign(
  285. __entry->ts_sec = ts_sec;
  286. __entry->ts_nsec = ts_nsec;
  287. __entry->trans_code = trans_code;
  288. __entry->trans_id = trans_id;
  289. ),
  290. TP_printk("%i,%i.%.9i,0,%i", __entry->trans_code,
  291. (int)__entry->ts_sec,
  292. (int)__entry->ts_nsec,
  293. __entry->trans_id)
  294. );
  295. TRACE_EVENT(mali_timeline_context_active,
  296. TP_PROTO(u64 ts_sec,
  297. u32 ts_nsec,
  298. int count),
  299. TP_ARGS(ts_sec,
  300. ts_nsec,
  301. count),
  302. TP_STRUCT__entry(
  303. __field(u64, ts_sec)
  304. __field(u32, ts_nsec)
  305. __field(int, count)
  306. ),
  307. TP_fast_assign(
  308. __entry->ts_sec = ts_sec;
  309. __entry->ts_nsec = ts_nsec;
  310. __entry->count = count;
  311. ),
  312. TP_printk("%i,%i.%.9i,0,%i", SW_SET_CONTEXT_ACTIVE,
  313. (int)__entry->ts_sec,
  314. (int)__entry->ts_nsec,
  315. __entry->count)
  316. );
  317. #endif // !defined(_MALI_TIMELINE_H) || defined(TRACE_HEADER_MULTI_READ)
  318. #undef TRACE_INCLUDE_PATH
  319. #define TRACE_INCLUDE_PATH .
  320. /* This part must be outside protection */
  321. #include <trace/define_trace.h>