^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM nbd
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #if !defined(_TRACE_NBD_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #define _TRACE_NBD_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) DECLARE_EVENT_CLASS(nbd_transport_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) TP_PROTO(struct request *req, u64 handle),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) TP_ARGS(req, handle),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) __field(struct request *, req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) __field(u64, handle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) __entry->req = req;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __entry->handle = handle;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) TP_printk(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) "nbd transport event: request %p, handle 0x%016llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __entry->req,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) __entry->handle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) DEFINE_EVENT(nbd_transport_event, nbd_header_sent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) TP_PROTO(struct request *req, u64 handle),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) TP_ARGS(req, handle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) DEFINE_EVENT(nbd_transport_event, nbd_payload_sent,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TP_PROTO(struct request *req, u64 handle),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) TP_ARGS(req, handle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) DEFINE_EVENT(nbd_transport_event, nbd_header_received,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TP_PROTO(struct request *req, u64 handle),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) TP_ARGS(req, handle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) DEFINE_EVENT(nbd_transport_event, nbd_payload_received,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) TP_PROTO(struct request *req, u64 handle),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) TP_ARGS(req, handle)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) DECLARE_EVENT_CLASS(nbd_send_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) TP_PROTO(struct nbd_request *nbd_request, int index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) struct request *rq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) TP_ARGS(nbd_request, index, rq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) __field(struct nbd_request *, nbd_request)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) __field(u64, dev_index)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) __field(struct request *, request)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) __entry->nbd_request = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) __entry->dev_index = index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) __entry->request = rq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) TP_printk("nbd%lld: request %p", __entry->dev_index, __entry->request)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) #ifdef DEFINE_EVENT_WRITABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #undef NBD_DEFINE_EVENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) #define NBD_DEFINE_EVENT(template, call, proto, args, size) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) DEFINE_EVENT_WRITABLE(template, call, PARAMS(proto), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) PARAMS(args), size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) #undef NBD_DEFINE_EVENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) #define NBD_DEFINE_EVENT(template, call, proto, args, size) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) DEFINE_EVENT(template, call, PARAMS(proto), PARAMS(args))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) NBD_DEFINE_EVENT(nbd_send_request, nbd_send_request,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TP_PROTO(struct nbd_request *nbd_request, int index,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) struct request *rq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) TP_ARGS(nbd_request, index, rq),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) sizeof(struct nbd_request)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) #include <trace/define_trace.h>