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