trace_iowait.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
  2. /*
  3. * Copyright(c) 2018 Intel Corporation.
  4. *
  5. */
  6. #if !defined(__HFI1_TRACE_IOWAIT_H) || defined(TRACE_HEADER_MULTI_READ)
  7. #define __HFI1_TRACE_IOWAIT_H
  8. #include <linux/tracepoint.h>
  9. #include "iowait.h"
  10. #include "verbs.h"
  11. #undef TRACE_SYSTEM
  12. #define TRACE_SYSTEM hfi1_iowait
  13. DECLARE_EVENT_CLASS(hfi1_iowait_template,
  14. TP_PROTO(struct iowait *wait, u32 flag),
  15. TP_ARGS(wait, flag),
  16. TP_STRUCT__entry(/* entry */
  17. __field(unsigned long, addr)
  18. __field(unsigned long, flags)
  19. __field(u32, flag)
  20. __field(u32, qpn)
  21. ),
  22. TP_fast_assign(/* assign */
  23. __entry->addr = (unsigned long)wait;
  24. __entry->flags = wait->flags;
  25. __entry->flag = (1 << flag);
  26. __entry->qpn = iowait_to_qp(wait)->ibqp.qp_num;
  27. ),
  28. TP_printk(/* print */
  29. "iowait 0x%lx qp %u flags 0x%lx flag 0x%x",
  30. __entry->addr,
  31. __entry->qpn,
  32. __entry->flags,
  33. __entry->flag
  34. )
  35. );
  36. DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_set,
  37. TP_PROTO(struct iowait *wait, u32 flag),
  38. TP_ARGS(wait, flag));
  39. DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_clear,
  40. TP_PROTO(struct iowait *wait, u32 flag),
  41. TP_ARGS(wait, flag));
  42. #endif /* __HFI1_TRACE_IOWAIT_H */
  43. #undef TRACE_INCLUDE_PATH
  44. #undef TRACE_INCLUDE_FILE
  45. #define TRACE_INCLUDE_PATH .
  46. #define TRACE_INCLUDE_FILE trace_iowait
  47. #include <trace/define_trace.h>