nbd.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM nbd
  4. #if !defined(_TRACE_NBD_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_NBD_H
  6. #include <linux/tracepoint.h>
  7. DECLARE_EVENT_CLASS(nbd_transport_event,
  8. TP_PROTO(struct request *req, u64 handle),
  9. TP_ARGS(req, handle),
  10. TP_STRUCT__entry(
  11. __field(struct request *, req)
  12. __field(u64, handle)
  13. ),
  14. TP_fast_assign(
  15. __entry->req = req;
  16. __entry->handle = handle;
  17. ),
  18. TP_printk(
  19. "nbd transport event: request %p, handle 0x%016llx",
  20. __entry->req,
  21. __entry->handle
  22. )
  23. );
  24. DEFINE_EVENT(nbd_transport_event, nbd_header_sent,
  25. TP_PROTO(struct request *req, u64 handle),
  26. TP_ARGS(req, handle)
  27. );
  28. DEFINE_EVENT(nbd_transport_event, nbd_payload_sent,
  29. TP_PROTO(struct request *req, u64 handle),
  30. TP_ARGS(req, handle)
  31. );
  32. DEFINE_EVENT(nbd_transport_event, nbd_header_received,
  33. TP_PROTO(struct request *req, u64 handle),
  34. TP_ARGS(req, handle)
  35. );
  36. DEFINE_EVENT(nbd_transport_event, nbd_payload_received,
  37. TP_PROTO(struct request *req, u64 handle),
  38. TP_ARGS(req, handle)
  39. );
  40. DECLARE_EVENT_CLASS(nbd_send_request,
  41. TP_PROTO(struct nbd_request *nbd_request, int index,
  42. struct request *rq),
  43. TP_ARGS(nbd_request, index, rq),
  44. TP_STRUCT__entry(
  45. __field(struct nbd_request *, nbd_request)
  46. __field(u64, dev_index)
  47. __field(struct request *, request)
  48. ),
  49. TP_fast_assign(
  50. __entry->nbd_request = 0;
  51. __entry->dev_index = index;
  52. __entry->request = rq;
  53. ),
  54. TP_printk("nbd%lld: request %p", __entry->dev_index, __entry->request)
  55. );
  56. #ifdef DEFINE_EVENT_WRITABLE
  57. #undef NBD_DEFINE_EVENT
  58. #define NBD_DEFINE_EVENT(template, call, proto, args, size) \
  59. DEFINE_EVENT_WRITABLE(template, call, PARAMS(proto), \
  60. PARAMS(args), size)
  61. #else
  62. #undef NBD_DEFINE_EVENT
  63. #define NBD_DEFINE_EVENT(template, call, proto, args, size) \
  64. DEFINE_EVENT(template, call, PARAMS(proto), PARAMS(args))
  65. #endif
  66. NBD_DEFINE_EVENT(nbd_send_request, nbd_send_request,
  67. TP_PROTO(struct nbd_request *nbd_request, int index,
  68. struct request *rq),
  69. TP_ARGS(nbd_request, index, rq),
  70. sizeof(struct nbd_request)
  71. );
  72. #endif
  73. /* This part must be outside protection */
  74. #include <trace/define_trace.h>