vsock_virtio_transport_common.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM vsock
  4. #if !defined(_TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H) || \
  5. defined(TRACE_HEADER_MULTI_READ)
  6. #define _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H
  7. #include <linux/tracepoint.h>
  8. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_TYPE_STREAM);
  9. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_TYPE_SEQPACKET);
  10. #define show_type(val) \
  11. __print_symbolic(val, \
  12. { VIRTIO_VSOCK_TYPE_STREAM, "STREAM" }, \
  13. { VIRTIO_VSOCK_TYPE_SEQPACKET, "SEQPACKET" })
  14. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_INVALID);
  15. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_REQUEST);
  16. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RESPONSE);
  17. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RST);
  18. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_SHUTDOWN);
  19. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_RW);
  20. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_UPDATE);
  21. TRACE_DEFINE_ENUM(VIRTIO_VSOCK_OP_CREDIT_REQUEST);
  22. #define show_op(val) \
  23. __print_symbolic(val, \
  24. { VIRTIO_VSOCK_OP_INVALID, "INVALID" }, \
  25. { VIRTIO_VSOCK_OP_REQUEST, "REQUEST" }, \
  26. { VIRTIO_VSOCK_OP_RESPONSE, "RESPONSE" }, \
  27. { VIRTIO_VSOCK_OP_RST, "RST" }, \
  28. { VIRTIO_VSOCK_OP_SHUTDOWN, "SHUTDOWN" }, \
  29. { VIRTIO_VSOCK_OP_RW, "RW" }, \
  30. { VIRTIO_VSOCK_OP_CREDIT_UPDATE, "CREDIT_UPDATE" }, \
  31. { VIRTIO_VSOCK_OP_CREDIT_REQUEST, "CREDIT_REQUEST" })
  32. TRACE_EVENT(virtio_transport_alloc_pkt,
  33. TP_PROTO(
  34. __u32 src_cid, __u32 src_port,
  35. __u32 dst_cid, __u32 dst_port,
  36. __u32 len,
  37. __u16 type,
  38. __u16 op,
  39. __u32 flags,
  40. bool zcopy
  41. ),
  42. TP_ARGS(
  43. src_cid, src_port,
  44. dst_cid, dst_port,
  45. len,
  46. type,
  47. op,
  48. flags,
  49. zcopy
  50. ),
  51. TP_STRUCT__entry(
  52. __field(__u32, src_cid)
  53. __field(__u32, src_port)
  54. __field(__u32, dst_cid)
  55. __field(__u32, dst_port)
  56. __field(__u32, len)
  57. __field(__u16, type)
  58. __field(__u16, op)
  59. __field(__u32, flags)
  60. __field(bool, zcopy)
  61. ),
  62. TP_fast_assign(
  63. __entry->src_cid = src_cid;
  64. __entry->src_port = src_port;
  65. __entry->dst_cid = dst_cid;
  66. __entry->dst_port = dst_port;
  67. __entry->len = len;
  68. __entry->type = type;
  69. __entry->op = op;
  70. __entry->flags = flags;
  71. __entry->zcopy = zcopy;
  72. ),
  73. TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x zcopy=%s",
  74. __entry->src_cid, __entry->src_port,
  75. __entry->dst_cid, __entry->dst_port,
  76. __entry->len,
  77. show_type(__entry->type),
  78. show_op(__entry->op),
  79. __entry->flags, __entry->zcopy ? "true" : "false")
  80. );
  81. TRACE_EVENT(virtio_transport_recv_pkt,
  82. TP_PROTO(
  83. __u32 src_cid, __u32 src_port,
  84. __u32 dst_cid, __u32 dst_port,
  85. __u32 len,
  86. __u16 type,
  87. __u16 op,
  88. __u32 flags,
  89. __u32 buf_alloc,
  90. __u32 fwd_cnt
  91. ),
  92. TP_ARGS(
  93. src_cid, src_port,
  94. dst_cid, dst_port,
  95. len,
  96. type,
  97. op,
  98. flags,
  99. buf_alloc,
  100. fwd_cnt
  101. ),
  102. TP_STRUCT__entry(
  103. __field(__u32, src_cid)
  104. __field(__u32, src_port)
  105. __field(__u32, dst_cid)
  106. __field(__u32, dst_port)
  107. __field(__u32, len)
  108. __field(__u16, type)
  109. __field(__u16, op)
  110. __field(__u32, flags)
  111. __field(__u32, buf_alloc)
  112. __field(__u32, fwd_cnt)
  113. ),
  114. TP_fast_assign(
  115. __entry->src_cid = src_cid;
  116. __entry->src_port = src_port;
  117. __entry->dst_cid = dst_cid;
  118. __entry->dst_port = dst_port;
  119. __entry->len = len;
  120. __entry->type = type;
  121. __entry->op = op;
  122. __entry->flags = flags;
  123. __entry->buf_alloc = buf_alloc;
  124. __entry->fwd_cnt = fwd_cnt;
  125. ),
  126. TP_printk("%u:%u -> %u:%u len=%u type=%s op=%s flags=%#x "
  127. "buf_alloc=%u fwd_cnt=%u",
  128. __entry->src_cid, __entry->src_port,
  129. __entry->dst_cid, __entry->dst_port,
  130. __entry->len,
  131. show_type(__entry->type),
  132. show_op(__entry->op),
  133. __entry->flags,
  134. __entry->buf_alloc,
  135. __entry->fwd_cnt)
  136. );
  137. #endif /* _TRACE_VSOCK_VIRTIO_TRANSPORT_COMMON_H */
  138. #undef TRACE_INCLUDE_FILE
  139. #define TRACE_INCLUDE_FILE vsock_virtio_transport_common
  140. /* This part must be outside protection */
  141. #include <trace/define_trace.h>