0001
0002 #undef TRACE_SYSTEM
0003 #define TRACE_SYSTEM nbd
0004
0005 #if !defined(_TRACE_NBD_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define _TRACE_NBD_H
0007
0008 #include <linux/tracepoint.h>
0009
0010 DECLARE_EVENT_CLASS(nbd_transport_event,
0011
0012 TP_PROTO(struct request *req, u64 handle),
0013
0014 TP_ARGS(req, handle),
0015
0016 TP_STRUCT__entry(
0017 __field(struct request *, req)
0018 __field(u64, handle)
0019 ),
0020
0021 TP_fast_assign(
0022 __entry->req = req;
0023 __entry->handle = handle;
0024 ),
0025
0026 TP_printk(
0027 "nbd transport event: request %p, handle 0x%016llx",
0028 __entry->req,
0029 __entry->handle
0030 )
0031 );
0032
0033 DEFINE_EVENT(nbd_transport_event, nbd_header_sent,
0034
0035 TP_PROTO(struct request *req, u64 handle),
0036
0037 TP_ARGS(req, handle)
0038 );
0039
0040 DEFINE_EVENT(nbd_transport_event, nbd_payload_sent,
0041
0042 TP_PROTO(struct request *req, u64 handle),
0043
0044 TP_ARGS(req, handle)
0045 );
0046
0047 DEFINE_EVENT(nbd_transport_event, nbd_header_received,
0048
0049 TP_PROTO(struct request *req, u64 handle),
0050
0051 TP_ARGS(req, handle)
0052 );
0053
0054 DEFINE_EVENT(nbd_transport_event, nbd_payload_received,
0055
0056 TP_PROTO(struct request *req, u64 handle),
0057
0058 TP_ARGS(req, handle)
0059 );
0060
0061 DECLARE_EVENT_CLASS(nbd_send_request,
0062
0063 TP_PROTO(struct nbd_request *nbd_request, int index,
0064 struct request *rq),
0065
0066 TP_ARGS(nbd_request, index, rq),
0067
0068 TP_STRUCT__entry(
0069 __field(struct nbd_request *, nbd_request)
0070 __field(u64, dev_index)
0071 __field(struct request *, request)
0072 ),
0073
0074 TP_fast_assign(
0075 __entry->nbd_request = 0;
0076 __entry->dev_index = index;
0077 __entry->request = rq;
0078 ),
0079
0080 TP_printk("nbd%lld: request %p", __entry->dev_index, __entry->request)
0081 );
0082
0083 #ifdef DEFINE_EVENT_WRITABLE
0084 #undef NBD_DEFINE_EVENT
0085 #define NBD_DEFINE_EVENT(template, call, proto, args, size) \
0086 DEFINE_EVENT_WRITABLE(template, call, PARAMS(proto), \
0087 PARAMS(args), size)
0088 #else
0089 #undef NBD_DEFINE_EVENT
0090 #define NBD_DEFINE_EVENT(template, call, proto, args, size) \
0091 DEFINE_EVENT(template, call, PARAMS(proto), PARAMS(args))
0092 #endif
0093
0094 NBD_DEFINE_EVENT(nbd_send_request, nbd_send_request,
0095
0096 TP_PROTO(struct nbd_request *nbd_request, int index,
0097 struct request *rq),
0098
0099 TP_ARGS(nbd_request, index, rq),
0100
0101 sizeof(struct nbd_request)
0102 );
0103
0104 #endif
0105
0106
0107 #include <trace/define_trace.h>