0001
0002
0003
0004
0005
0006 #if !defined(__HFI1_TRACE_IOWAIT_H) || defined(TRACE_HEADER_MULTI_READ)
0007 #define __HFI1_TRACE_IOWAIT_H
0008
0009 #include <linux/tracepoint.h>
0010 #include "iowait.h"
0011 #include "verbs.h"
0012
0013 #undef TRACE_SYSTEM
0014 #define TRACE_SYSTEM hfi1_iowait
0015
0016 DECLARE_EVENT_CLASS(hfi1_iowait_template,
0017 TP_PROTO(struct iowait *wait, u32 flag),
0018 TP_ARGS(wait, flag),
0019 TP_STRUCT__entry(
0020 __field(unsigned long, addr)
0021 __field(unsigned long, flags)
0022 __field(u32, flag)
0023 __field(u32, qpn)
0024 ),
0025 TP_fast_assign(
0026 __entry->addr = (unsigned long)wait;
0027 __entry->flags = wait->flags;
0028 __entry->flag = (1 << flag);
0029 __entry->qpn = iowait_to_qp(wait)->ibqp.qp_num;
0030 ),
0031 TP_printk(
0032 "iowait 0x%lx qp %u flags 0x%lx flag 0x%x",
0033 __entry->addr,
0034 __entry->qpn,
0035 __entry->flags,
0036 __entry->flag
0037 )
0038 );
0039
0040 DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_set,
0041 TP_PROTO(struct iowait *wait, u32 flag),
0042 TP_ARGS(wait, flag));
0043
0044 DEFINE_EVENT(hfi1_iowait_template, hfi1_iowait_clear,
0045 TP_PROTO(struct iowait *wait, u32 flag),
0046 TP_ARGS(wait, flag));
0047
0048 #endif
0049
0050 #undef TRACE_INCLUDE_PATH
0051 #undef TRACE_INCLUDE_FILE
0052 #define TRACE_INCLUDE_PATH .
0053 #define TRACE_INCLUDE_FILE trace_iowait
0054 #include <trace/define_trace.h>