vfio_ccw_trace.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /* Tracepoints for vfio_ccw driver
  3. *
  4. * Copyright IBM Corp. 2018
  5. *
  6. * Author(s): Dong Jia Shi <[email protected]>
  7. * Halil Pasic <[email protected]>
  8. */
  9. #include "cio.h"
  10. #undef TRACE_SYSTEM
  11. #define TRACE_SYSTEM vfio_ccw
  12. #if !defined(_VFIO_CCW_TRACE_) || defined(TRACE_HEADER_MULTI_READ)
  13. #define _VFIO_CCW_TRACE_
  14. #include <linux/tracepoint.h>
  15. TRACE_EVENT(vfio_ccw_chp_event,
  16. TP_PROTO(struct subchannel_id schid,
  17. int mask,
  18. int event),
  19. TP_ARGS(schid, mask, event),
  20. TP_STRUCT__entry(
  21. __field(u8, cssid)
  22. __field(u8, ssid)
  23. __field(u16, sch_no)
  24. __field(int, mask)
  25. __field(int, event)
  26. ),
  27. TP_fast_assign(
  28. __entry->cssid = schid.cssid;
  29. __entry->ssid = schid.ssid;
  30. __entry->sch_no = schid.sch_no;
  31. __entry->mask = mask;
  32. __entry->event = event;
  33. ),
  34. TP_printk("schid=%x.%x.%04x mask=0x%x event=%d",
  35. __entry->cssid,
  36. __entry->ssid,
  37. __entry->sch_no,
  38. __entry->mask,
  39. __entry->event)
  40. );
  41. TRACE_EVENT(vfio_ccw_fsm_async_request,
  42. TP_PROTO(struct subchannel_id schid,
  43. int command,
  44. int errno),
  45. TP_ARGS(schid, command, errno),
  46. TP_STRUCT__entry(
  47. __field(u8, cssid)
  48. __field(u8, ssid)
  49. __field(u16, sch_no)
  50. __field(int, command)
  51. __field(int, errno)
  52. ),
  53. TP_fast_assign(
  54. __entry->cssid = schid.cssid;
  55. __entry->ssid = schid.ssid;
  56. __entry->sch_no = schid.sch_no;
  57. __entry->command = command;
  58. __entry->errno = errno;
  59. ),
  60. TP_printk("schid=%x.%x.%04x command=0x%x errno=%d",
  61. __entry->cssid,
  62. __entry->ssid,
  63. __entry->sch_no,
  64. __entry->command,
  65. __entry->errno)
  66. );
  67. TRACE_EVENT(vfio_ccw_fsm_event,
  68. TP_PROTO(struct subchannel_id schid, int state, int event),
  69. TP_ARGS(schid, state, event),
  70. TP_STRUCT__entry(
  71. __field(u8, cssid)
  72. __field(u8, ssid)
  73. __field(u16, schno)
  74. __field(int, state)
  75. __field(int, event)
  76. ),
  77. TP_fast_assign(
  78. __entry->cssid = schid.cssid;
  79. __entry->ssid = schid.ssid;
  80. __entry->schno = schid.sch_no;
  81. __entry->state = state;
  82. __entry->event = event;
  83. ),
  84. TP_printk("schid=%x.%x.%04x state=%d event=%d",
  85. __entry->cssid, __entry->ssid, __entry->schno,
  86. __entry->state,
  87. __entry->event)
  88. );
  89. TRACE_EVENT(vfio_ccw_fsm_io_request,
  90. TP_PROTO(int fctl, struct subchannel_id schid, int errno, char *errstr),
  91. TP_ARGS(fctl, schid, errno, errstr),
  92. TP_STRUCT__entry(
  93. __field(u8, cssid)
  94. __field(u8, ssid)
  95. __field(u16, sch_no)
  96. __field(int, fctl)
  97. __field(int, errno)
  98. __field(char*, errstr)
  99. ),
  100. TP_fast_assign(
  101. __entry->cssid = schid.cssid;
  102. __entry->ssid = schid.ssid;
  103. __entry->sch_no = schid.sch_no;
  104. __entry->fctl = fctl;
  105. __entry->errno = errno;
  106. __entry->errstr = errstr;
  107. ),
  108. TP_printk("schid=%x.%x.%04x fctl=0x%x errno=%d info=%s",
  109. __entry->cssid,
  110. __entry->ssid,
  111. __entry->sch_no,
  112. __entry->fctl,
  113. __entry->errno,
  114. __entry->errstr)
  115. );
  116. #endif /* _VFIO_CCW_TRACE_ */
  117. /* This part must be outside protection */
  118. #undef TRACE_INCLUDE_PATH
  119. #define TRACE_INCLUDE_PATH .
  120. #undef TRACE_INCLUDE_FILE
  121. #define TRACE_INCLUDE_FILE vfio_ccw_trace
  122. #include <trace/define_trace.h>