rtrs-srv-trace.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * RDMA Network Block Driver
  4. *
  5. * Copyright (c) 2022 1&1 IONOS SE. All rights reserved.
  6. */
  7. #undef TRACE_SYSTEM
  8. #define TRACE_SYSTEM rtrs_srv
  9. #if !defined(_TRACE_RTRS_SRV_H) || defined(TRACE_HEADER_MULTI_READ)
  10. #define _TRACE_RTRS_SRV_H
  11. #include <linux/tracepoint.h>
  12. struct rtrs_srv_op;
  13. struct rtrs_srv_con;
  14. struct rtrs_srv_path;
  15. TRACE_DEFINE_ENUM(RTRS_SRV_CONNECTING);
  16. TRACE_DEFINE_ENUM(RTRS_SRV_CONNECTED);
  17. TRACE_DEFINE_ENUM(RTRS_SRV_CLOSING);
  18. TRACE_DEFINE_ENUM(RTRS_SRV_CLOSED);
  19. #define show_rtrs_srv_state(x) \
  20. __print_symbolic(x, \
  21. { RTRS_SRV_CONNECTING, "CONNECTING" }, \
  22. { RTRS_SRV_CONNECTED, "CONNECTED" }, \
  23. { RTRS_SRV_CLOSING, "CLOSING" }, \
  24. { RTRS_SRV_CLOSED, "CLOSED" })
  25. TRACE_EVENT(send_io_resp_imm,
  26. TP_PROTO(struct rtrs_srv_op *id,
  27. bool need_inval,
  28. bool always_invalidate,
  29. int errno),
  30. TP_ARGS(id, need_inval, always_invalidate, errno),
  31. TP_STRUCT__entry(
  32. __field(u8, dir)
  33. __field(bool, need_inval)
  34. __field(bool, always_invalidate)
  35. __field(u32, msg_id)
  36. __field(int, wr_cnt)
  37. __field(u32, signal_interval)
  38. __field(int, state)
  39. __field(int, errno)
  40. __array(char, sessname, NAME_MAX)
  41. ),
  42. TP_fast_assign(
  43. struct rtrs_srv_con *con = id->con;
  44. struct rtrs_path *s = con->c.path;
  45. struct rtrs_srv_path *srv_path = to_srv_path(s);
  46. __entry->dir = id->dir;
  47. __entry->state = srv_path->state;
  48. __entry->errno = errno;
  49. __entry->need_inval = need_inval;
  50. __entry->always_invalidate = always_invalidate;
  51. __entry->msg_id = id->msg_id;
  52. __entry->wr_cnt = atomic_read(&con->c.wr_cnt);
  53. __entry->signal_interval = s->signal_interval;
  54. memcpy(__entry->sessname, kobject_name(&srv_path->kobj), NAME_MAX);
  55. ),
  56. TP_printk("sess='%s' state='%s' dir=%s err='%d' inval='%d' glob-inval='%d' msgid='%u' wrcnt='%d' sig-interval='%u'",
  57. __entry->sessname,
  58. show_rtrs_srv_state(__entry->state),
  59. __print_symbolic(__entry->dir,
  60. { READ, "READ" },
  61. { WRITE, "WRITE" }),
  62. __entry->errno,
  63. __entry->need_inval,
  64. __entry->always_invalidate,
  65. __entry->msg_id,
  66. __entry->wr_cnt,
  67. __entry->signal_interval
  68. )
  69. );
  70. #endif /* _TRACE_RTRS_SRV_H */
  71. #undef TRACE_INCLUDE_PATH
  72. #define TRACE_INCLUDE_PATH .
  73. #define TRACE_INCLUDE_FILE rtrs-srv-trace
  74. #include <trace/define_trace.h>