ivpu_trace.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) 2020-2024 Intel Corporation
  4. */
  5. #if !defined(__IVPU_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
  6. #define __IVPU_TRACE_H__
  7. #include <linux/tracepoint.h>
  8. #include "ivpu_drv.h"
  9. #include "ivpu_job.h"
  10. #include "vpu_jsm_api.h"
  11. #include "ivpu_jsm_msg.h"
  12. #include "ivpu_ipc.h"
  13. #undef TRACE_SYSTEM
  14. #define TRACE_SYSTEM vpu
  15. #define TRACE_INCLUDE_FILE ivpu_trace
  16. TRACE_EVENT(pm,
  17. TP_PROTO(const char *event),
  18. TP_ARGS(event),
  19. TP_STRUCT__entry(__field(const char *, event)),
  20. TP_fast_assign(__entry->event = event;),
  21. TP_printk("%s", __entry->event)
  22. );
  23. TRACE_EVENT(job,
  24. TP_PROTO(const char *event, struct ivpu_job *job),
  25. TP_ARGS(event, job),
  26. TP_STRUCT__entry(__field(const char *, event)
  27. __field(u32, ctx_id)
  28. __field(u32, engine_id)
  29. __field(u32, job_id)
  30. ),
  31. TP_fast_assign(__entry->event = event;
  32. __entry->ctx_id = job->file_priv->ctx.id;
  33. __entry->engine_id = job->engine_idx;
  34. __entry->job_id = job->job_id;),
  35. TP_printk("%s context:%d engine:%d job:%d",
  36. __entry->event,
  37. __entry->ctx_id,
  38. __entry->engine_id,
  39. __entry->job_id)
  40. );
  41. TRACE_EVENT(jsm,
  42. TP_PROTO(const char *event, struct vpu_jsm_msg *msg),
  43. TP_ARGS(event, msg),
  44. TP_STRUCT__entry(__field(const char *, event)
  45. __field(const char *, type)
  46. __field(enum vpu_ipc_msg_status, status)
  47. __field(u32, request_id)
  48. __field(u32, result)
  49. ),
  50. TP_fast_assign(__entry->event = event;
  51. __entry->type = ivpu_jsm_msg_type_to_str(msg->type);
  52. __entry->status = msg->status;
  53. __entry->request_id = msg->request_id;
  54. __entry->result = msg->result;),
  55. TP_printk("%s type:%s, status:%#x, id:%#x, result:%#x",
  56. __entry->event,
  57. __entry->type,
  58. __entry->status,
  59. __entry->request_id,
  60. __entry->result)
  61. );
  62. #endif /* __IVPU_TRACE_H__ */
  63. #undef TRACE_INCLUDE_PATH
  64. #define TRACE_INCLUDE_PATH .
  65. #include <trace/define_trace.h>