0001
0002
0003
0004
0005 #if !defined(__RVT_TRACE_RC_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define __RVT_TRACE_RC_H
0007
0008 #include <linux/tracepoint.h>
0009 #include <linux/trace_seq.h>
0010
0011 #include <rdma/ib_verbs.h>
0012 #include <rdma/rdmavt_qp.h>
0013
0014 #undef TRACE_SYSTEM
0015 #define TRACE_SYSTEM rvt_rc
0016
0017 DECLARE_EVENT_CLASS(rvt_rc_template,
0018 TP_PROTO(struct rvt_qp *qp, u32 psn),
0019 TP_ARGS(qp, psn),
0020 TP_STRUCT__entry(
0021 RDI_DEV_ENTRY(ib_to_rvt(qp->ibqp.device))
0022 __field(u32, qpn)
0023 __field(u32, s_flags)
0024 __field(u32, psn)
0025 __field(u32, s_psn)
0026 __field(u32, s_next_psn)
0027 __field(u32, s_sending_psn)
0028 __field(u32, s_sending_hpsn)
0029 __field(u32, r_psn)
0030 ),
0031 TP_fast_assign(
0032 RDI_DEV_ASSIGN(ib_to_rvt(qp->ibqp.device));
0033 __entry->qpn = qp->ibqp.qp_num;
0034 __entry->s_flags = qp->s_flags;
0035 __entry->psn = psn;
0036 __entry->s_psn = qp->s_psn;
0037 __entry->s_next_psn = qp->s_next_psn;
0038 __entry->s_sending_psn = qp->s_sending_psn;
0039 __entry->s_sending_hpsn = qp->s_sending_hpsn;
0040 __entry->r_psn = qp->r_psn;
0041 ),
0042 TP_printk(
0043 "[%s] qpn 0x%x s_flags 0x%x psn 0x%x s_psn 0x%x s_next_psn 0x%x s_sending_psn 0x%x sending_hpsn 0x%x r_psn 0x%x",
0044 __get_str(dev),
0045 __entry->qpn,
0046 __entry->s_flags,
0047 __entry->psn,
0048 __entry->s_psn,
0049 __entry->s_next_psn,
0050 __entry->s_sending_psn,
0051 __entry->s_sending_hpsn,
0052 __entry->r_psn
0053 )
0054 );
0055
0056 DEFINE_EVENT(rvt_rc_template, rvt_rc_timeout,
0057 TP_PROTO(struct rvt_qp *qp, u32 psn),
0058 TP_ARGS(qp, psn)
0059 );
0060
0061 #endif
0062
0063 #undef TRACE_INCLUDE_PATH
0064 #undef TRACE_INCLUDE_FILE
0065 #define TRACE_INCLUDE_PATH .
0066 #define TRACE_INCLUDE_FILE trace_rc
0067 #include <trace/define_trace.h>