trace-dcvs.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #if !defined(_TRACE_DCVS_H) || defined(TRACE_HEADER_MULTI_READ)
  7. #define _TRACE_DCVS_H
  8. #undef TRACE_SYSTEM
  9. #define TRACE_SYSTEM dcvs
  10. #include <linux/tracepoint.h>
  11. #include <soc/qcom/dcvs.h>
  12. TRACE_EVENT(qcom_dcvs_update,
  13. TP_PROTO(const char *name, int hw, int path, unsigned long ib,
  14. unsigned long path_ib, unsigned long ab, unsigned long path_ab,
  15. unsigned long boost_freq),
  16. TP_ARGS(name, hw, path, ib, path_ib, ab, path_ab, boost_freq),
  17. TP_STRUCT__entry(
  18. __string(name, name)
  19. __field(int, hw)
  20. __field(int, path)
  21. __field(unsigned long, ib)
  22. __field(unsigned long, path_ib)
  23. __field(unsigned long, ab)
  24. __field(unsigned long, path_ab)
  25. __field(unsigned long, boost_freq)
  26. ),
  27. TP_fast_assign(
  28. __assign_str(name, name);
  29. __entry->hw = hw;
  30. __entry->path = path;
  31. __entry->ib = ib;
  32. __entry->path_ib = path_ib;
  33. __entry->ab = ab;
  34. __entry->path_ab = path_ab;
  35. __entry->boost_freq = boost_freq;
  36. ),
  37. TP_printk("name=%s hw=%d path=%d ib=%lu path_ib=%lu ab=%lu path_ab=%lu boost=%lu",
  38. __get_str(name),
  39. __entry->hw,
  40. __entry->path,
  41. __entry->ib,
  42. __entry->path_ib,
  43. __entry->ab,
  44. __entry->path_ab,
  45. __entry->boost_freq)
  46. );
  47. TRACE_EVENT(qcom_dcvs_boost,
  48. TP_PROTO(int hw, int path, unsigned long boost, unsigned long path_ib,
  49. unsigned long path_ab),
  50. TP_ARGS(hw, path, boost, path_ib, path_ab),
  51. TP_STRUCT__entry(
  52. __field(int, hw)
  53. __field(int, path)
  54. __field(unsigned long, boost)
  55. __field(unsigned long, path_ib)
  56. __field(unsigned long, path_ab)
  57. ),
  58. TP_fast_assign(
  59. __entry->hw = hw;
  60. __entry->path = path;
  61. __entry->boost = boost;
  62. __entry->path_ib = path_ib;
  63. __entry->path_ab = path_ab;
  64. ),
  65. TP_printk("hw=%d path=%d boost=%lu path_ib=%lu path_ab=%lu",
  66. __entry->hw,
  67. __entry->path,
  68. __entry->boost,
  69. __entry->path_ib,
  70. __entry->path_ab)
  71. );
  72. TRACE_EVENT(memlat_dev_meas,
  73. TP_PROTO(const char *name, unsigned int dev_id, unsigned long inst,
  74. unsigned long mem, unsigned long freq, unsigned int stall,
  75. unsigned int wb, unsigned int ratio, unsigned int fe_stall),
  76. TP_ARGS(name, dev_id, inst, mem, freq, stall, wb, ratio, fe_stall),
  77. TP_STRUCT__entry(
  78. __string(name, name)
  79. __field(unsigned int, dev_id)
  80. __field(unsigned long, inst)
  81. __field(unsigned long, mem)
  82. __field(unsigned long, freq)
  83. __field(unsigned int, stall)
  84. __field(unsigned int, wb)
  85. __field(unsigned int, ratio)
  86. __field(unsigned int, fe_stall)
  87. ),
  88. TP_fast_assign(
  89. __assign_str(name, name);
  90. __entry->dev_id = dev_id;
  91. __entry->inst = inst;
  92. __entry->mem = mem;
  93. __entry->freq = freq;
  94. __entry->stall = stall;
  95. __entry->wb = wb;
  96. __entry->ratio = ratio;
  97. __entry->fe_stall = fe_stall;
  98. ),
  99. TP_printk("dev: %s, id=%u, inst=%lu, mem=%lu, freq=%lu, stall=%u, wb=%u, ratio=%u, fe_stall=%u",
  100. __get_str(name),
  101. __entry->dev_id,
  102. __entry->inst,
  103. __entry->mem,
  104. __entry->freq,
  105. __entry->stall,
  106. __entry->wb,
  107. __entry->ratio,
  108. __entry->fe_stall)
  109. );
  110. TRACE_EVENT(memlat_dev_update,
  111. TP_PROTO(const char *name, unsigned int dev_id, unsigned long inst,
  112. unsigned long mem, unsigned long freq, unsigned long vote),
  113. TP_ARGS(name, dev_id, inst, mem, freq, vote),
  114. TP_STRUCT__entry(
  115. __string(name, name)
  116. __field(unsigned int, dev_id)
  117. __field(unsigned long, inst)
  118. __field(unsigned long, mem)
  119. __field(unsigned long, freq)
  120. __field(unsigned long, vote)
  121. ),
  122. TP_fast_assign(
  123. __assign_str(name, name);
  124. __entry->dev_id = dev_id;
  125. __entry->inst = inst;
  126. __entry->mem = mem;
  127. __entry->freq = freq;
  128. __entry->vote = vote;
  129. ),
  130. TP_printk("dev: %s, id=%u, inst=%lu, mem=%lu, freq=%lu, vote=%lu",
  131. __get_str(name),
  132. __entry->dev_id,
  133. __entry->inst,
  134. __entry->mem,
  135. __entry->freq,
  136. __entry->vote)
  137. );
  138. TRACE_EVENT(bw_hwmon_meas,
  139. TP_PROTO(const char *name, unsigned long mbps,
  140. unsigned long us, int wake),
  141. TP_ARGS(name, mbps, us, wake),
  142. TP_STRUCT__entry(
  143. __string(name, name)
  144. __field(unsigned long, mbps)
  145. __field(unsigned long, us)
  146. __field(int, wake)
  147. ),
  148. TP_fast_assign(
  149. __assign_str(name, name);
  150. __entry->mbps = mbps;
  151. __entry->us = us;
  152. __entry->wake = wake;
  153. ),
  154. TP_printk("dev: %s, mbps = %lu, us = %lu, wake = %d",
  155. __get_str(name),
  156. __entry->mbps,
  157. __entry->us,
  158. __entry->wake)
  159. );
  160. TRACE_EVENT(bw_hwmon_update,
  161. TP_PROTO(const char *name, unsigned long mbps, unsigned long freq,
  162. unsigned long up_thres, unsigned long down_thres),
  163. TP_ARGS(name, mbps, freq, up_thres, down_thres),
  164. TP_STRUCT__entry(
  165. __string(name, name)
  166. __field(unsigned long, mbps)
  167. __field(unsigned long, freq)
  168. __field(unsigned long, up_thres)
  169. __field(unsigned long, down_thres)
  170. ),
  171. TP_fast_assign(
  172. __assign_str(name, name);
  173. __entry->mbps = mbps;
  174. __entry->freq = freq;
  175. __entry->up_thres = up_thres;
  176. __entry->down_thres = down_thres;
  177. ),
  178. TP_printk("dev: %s, mbps = %lu, freq = %lu, up = %lu, down = %lu",
  179. __get_str(name),
  180. __entry->mbps,
  181. __entry->freq,
  182. __entry->up_thres,
  183. __entry->down_thres)
  184. );
  185. TRACE_EVENT(bw_hwmon_debug,
  186. TP_PROTO(const char *name, unsigned long mbps, unsigned long zone,
  187. unsigned long hist_max, unsigned long hist_mem,
  188. unsigned long hyst_mbps, unsigned long hyst_len),
  189. TP_ARGS(name, mbps, zone, hist_max, hist_mem, hyst_mbps, hyst_len),
  190. TP_STRUCT__entry(
  191. __string(name, name)
  192. __field(unsigned long, mbps)
  193. __field(unsigned long, zone)
  194. __field(unsigned long, hist_max)
  195. __field(unsigned long, hist_mem)
  196. __field(unsigned long, hyst_mbps)
  197. __field(unsigned long, hyst_len)
  198. ),
  199. TP_fast_assign(
  200. __assign_str(name, name);
  201. __entry->mbps = mbps;
  202. __entry->zone = zone;
  203. __entry->hist_max = hist_max;
  204. __entry->hist_mem = hist_mem;
  205. __entry->hyst_mbps = hyst_mbps;
  206. __entry->hyst_len = hyst_len;
  207. ),
  208. TP_printk("dev=%s mbps=%lu zone=%lu hist_max=%lu hist_mem=%lu hyst_mbps=%lu hyst_len=%lu",
  209. __get_str(name),
  210. __entry->mbps,
  211. __entry->zone,
  212. __entry->hist_max,
  213. __entry->hist_mem,
  214. __entry->hyst_mbps,
  215. __entry->hyst_len)
  216. );
  217. TRACE_EVENT(bwprof_last_sample,
  218. TP_PROTO(const char *name, const char *client, ktime_t ts, u32 meas_mbps,
  219. u32 max_mbps, u32 mem_freq),
  220. TP_ARGS(name, client, ts, meas_mbps, max_mbps, mem_freq),
  221. TP_STRUCT__entry(
  222. __string(name, name)
  223. __string(client, client)
  224. __field(ktime_t, ts)
  225. __field(u32, meas_mbps)
  226. __field(u32, max_mbps)
  227. __field(u32, mem_freq)
  228. ),
  229. TP_fast_assign(
  230. __assign_str(name, name);
  231. __assign_str(client, client);
  232. __entry->ts = ts;
  233. __entry->meas_mbps = meas_mbps;
  234. __entry->max_mbps = max_mbps;
  235. __entry->mem_freq = mem_freq;
  236. ),
  237. TP_printk("dev=%s client=%s ts=%llu meas_mbps=%u max_mbps=%u mem_freq=%u",
  238. __get_str(name),
  239. __get_str(client),
  240. __entry->ts,
  241. __entry->meas_mbps,
  242. __entry->max_mbps,
  243. __entry->mem_freq)
  244. );
  245. #endif /* _TRACE_DCVS_H */
  246. #undef TRACE_INCLUDE_PATH
  247. #define TRACE_INCLUDE_PATH .
  248. #undef TRACE_INCLUDE_FILE
  249. #define TRACE_INCLUDE_FILE trace-dcvs
  250. #include <trace/define_trace.h>