0001
0002
0003
0004
0005 #if !defined(__RVT_TRACE_QP_H) || defined(TRACE_HEADER_MULTI_READ)
0006 #define __RVT_TRACE_QP_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_qp
0016
0017 DECLARE_EVENT_CLASS(rvt_qphash_template,
0018 TP_PROTO(struct rvt_qp *qp, u32 bucket),
0019 TP_ARGS(qp, bucket),
0020 TP_STRUCT__entry(
0021 RDI_DEV_ENTRY(ib_to_rvt(qp->ibqp.device))
0022 __field(u32, qpn)
0023 __field(u32, bucket)
0024 ),
0025 TP_fast_assign(
0026 RDI_DEV_ASSIGN(ib_to_rvt(qp->ibqp.device));
0027 __entry->qpn = qp->ibqp.qp_num;
0028 __entry->bucket = bucket;
0029 ),
0030 TP_printk(
0031 "[%s] qpn 0x%x bucket %u",
0032 __get_str(dev),
0033 __entry->qpn,
0034 __entry->bucket
0035 )
0036 );
0037
0038 DEFINE_EVENT(rvt_qphash_template, rvt_qpinsert,
0039 TP_PROTO(struct rvt_qp *qp, u32 bucket),
0040 TP_ARGS(qp, bucket));
0041
0042 DEFINE_EVENT(rvt_qphash_template, rvt_qpremove,
0043 TP_PROTO(struct rvt_qp *qp, u32 bucket),
0044 TP_ARGS(qp, bucket));
0045
0046 DECLARE_EVENT_CLASS(
0047 rvt_rnrnak_template,
0048 TP_PROTO(struct rvt_qp *qp, u32 to),
0049 TP_ARGS(qp, to),
0050 TP_STRUCT__entry(
0051 RDI_DEV_ENTRY(ib_to_rvt(qp->ibqp.device))
0052 __field(u32, qpn)
0053 __field(void *, hrtimer)
0054 __field(u32, s_flags)
0055 __field(u32, to)
0056 ),
0057 TP_fast_assign(
0058 RDI_DEV_ASSIGN(ib_to_rvt(qp->ibqp.device));
0059 __entry->qpn = qp->ibqp.qp_num;
0060 __entry->hrtimer = &qp->s_rnr_timer;
0061 __entry->s_flags = qp->s_flags;
0062 __entry->to = to;
0063 ),
0064 TP_printk(
0065 "[%s] qpn 0x%x hrtimer 0x%p s_flags 0x%x timeout %u us",
0066 __get_str(dev),
0067 __entry->qpn,
0068 __entry->hrtimer,
0069 __entry->s_flags,
0070 __entry->to
0071 )
0072 );
0073
0074 DEFINE_EVENT(
0075 rvt_rnrnak_template, rvt_rnrnak_add,
0076 TP_PROTO(struct rvt_qp *qp, u32 to),
0077 TP_ARGS(qp, to));
0078
0079 DEFINE_EVENT(
0080 rvt_rnrnak_template, rvt_rnrnak_timeout,
0081 TP_PROTO(struct rvt_qp *qp, u32 to),
0082 TP_ARGS(qp, to));
0083
0084 DEFINE_EVENT(
0085 rvt_rnrnak_template, rvt_rnrnak_stop,
0086 TP_PROTO(struct rvt_qp *qp, u32 to),
0087 TP_ARGS(qp, to));
0088
0089 #endif
0090
0091 #undef TRACE_INCLUDE_PATH
0092 #undef TRACE_INCLUDE_FILE
0093 #define TRACE_INCLUDE_PATH .
0094 #define TRACE_INCLUDE_FILE trace_qp
0095 #include <trace/define_trace.h>
0096