Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
0002 /*
0003  * Copyright(c) 2016 Intel Corporation.
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 /* __RVT_TRACE_QP_H */
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