xref: /linux/drivers/infiniband/hw/hfi1/trace_rc.h (revision 3ec648c6)
1*3ec648c6SKrzysztof Kozlowski /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2462b6b21SSebastian Sanchez /*
35f14e4e6SSebastian Sanchez * Copyright(c) 2015, 2016, 2017 Intel Corporation.
4462b6b21SSebastian Sanchez */
5145eba1aSCai Huoqing 
6462b6b21SSebastian Sanchez #if !defined(__HFI1_TRACE_RC_H) || defined(TRACE_HEADER_MULTI_READ)
7462b6b21SSebastian Sanchez #define __HFI1_TRACE_RC_H
8462b6b21SSebastian Sanchez 
9462b6b21SSebastian Sanchez #include <linux/tracepoint.h>
10462b6b21SSebastian Sanchez #include <linux/trace_seq.h>
11462b6b21SSebastian Sanchez 
12462b6b21SSebastian Sanchez #include "hfi.h"
13462b6b21SSebastian Sanchez 
14462b6b21SSebastian Sanchez #undef TRACE_SYSTEM
15462b6b21SSebastian Sanchez #define TRACE_SYSTEM hfi1_rc
16462b6b21SSebastian Sanchez 
17462b6b21SSebastian Sanchez DECLARE_EVENT_CLASS(hfi1_rc_template,
18462b6b21SSebastian Sanchez 		    TP_PROTO(struct rvt_qp *qp, u32 psn),
19462b6b21SSebastian Sanchez 		    TP_ARGS(qp, psn),
20462b6b21SSebastian Sanchez 		    TP_STRUCT__entry(
21462b6b21SSebastian Sanchez 			DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
22462b6b21SSebastian Sanchez 			__field(u32, qpn)
23462b6b21SSebastian Sanchez 			__field(u32, s_flags)
24462b6b21SSebastian Sanchez 			__field(u32, psn)
25462b6b21SSebastian Sanchez 			__field(u32, s_psn)
26462b6b21SSebastian Sanchez 			__field(u32, s_next_psn)
27462b6b21SSebastian Sanchez 			__field(u32, s_sending_psn)
28462b6b21SSebastian Sanchez 			__field(u32, s_sending_hpsn)
29462b6b21SSebastian Sanchez 			__field(u32, r_psn)
30462b6b21SSebastian Sanchez 			),
31462b6b21SSebastian Sanchez 		    TP_fast_assign(
3278c14b38SJoe Perches 			DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
33462b6b21SSebastian Sanchez 			__entry->qpn = qp->ibqp.qp_num;
34462b6b21SSebastian Sanchez 			__entry->s_flags = qp->s_flags;
35462b6b21SSebastian Sanchez 			__entry->psn = psn;
36462b6b21SSebastian Sanchez 			__entry->s_psn = qp->s_psn;
37462b6b21SSebastian Sanchez 			__entry->s_next_psn = qp->s_next_psn;
38462b6b21SSebastian Sanchez 			__entry->s_sending_psn = qp->s_sending_psn;
39462b6b21SSebastian Sanchez 			__entry->s_sending_hpsn = qp->s_sending_hpsn;
40462b6b21SSebastian Sanchez 			__entry->r_psn = qp->r_psn;
41462b6b21SSebastian Sanchez 			),
42462b6b21SSebastian Sanchez 		    TP_printk(
43462b6b21SSebastian Sanchez 			"[%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",
44462b6b21SSebastian Sanchez 			__get_str(dev),
45462b6b21SSebastian Sanchez 			__entry->qpn,
46462b6b21SSebastian Sanchez 			__entry->s_flags,
47462b6b21SSebastian Sanchez 			__entry->psn,
48462b6b21SSebastian Sanchez 			__entry->s_psn,
49462b6b21SSebastian Sanchez 			__entry->s_next_psn,
50462b6b21SSebastian Sanchez 			__entry->s_sending_psn,
51462b6b21SSebastian Sanchez 			__entry->s_sending_hpsn,
52462b6b21SSebastian Sanchez 			__entry->r_psn
53462b6b21SSebastian Sanchez 			)
54462b6b21SSebastian Sanchez );
55462b6b21SSebastian Sanchez 
56462b6b21SSebastian Sanchez DEFINE_EVENT(hfi1_rc_template, hfi1_sendcomplete,
57462b6b21SSebastian Sanchez 	     TP_PROTO(struct rvt_qp *qp, u32 psn),
58462b6b21SSebastian Sanchez 	     TP_ARGS(qp, psn)
59462b6b21SSebastian Sanchez );
60462b6b21SSebastian Sanchez 
61462b6b21SSebastian Sanchez DEFINE_EVENT(hfi1_rc_template, hfi1_ack,
62462b6b21SSebastian Sanchez 	     TP_PROTO(struct rvt_qp *qp, u32 psn),
63462b6b21SSebastian Sanchez 	     TP_ARGS(qp, psn)
64462b6b21SSebastian Sanchez );
65462b6b21SSebastian Sanchez 
66462b6b21SSebastian Sanchez DEFINE_EVENT(hfi1_rc_template, hfi1_rcv_error,
67462b6b21SSebastian Sanchez 	     TP_PROTO(struct rvt_qp *qp, u32 psn),
68462b6b21SSebastian Sanchez 	     TP_ARGS(qp, psn)
69462b6b21SSebastian Sanchez );
70462b6b21SSebastian Sanchez 
713ce5daa2SKaike Wan DEFINE_EVENT(/* event */
723ce5daa2SKaike Wan 	hfi1_rc_template, hfi1_rc_completion,
733ce5daa2SKaike Wan 	TP_PROTO(struct rvt_qp *qp, u32 psn),
743ce5daa2SKaike Wan 	TP_ARGS(qp, psn)
753ce5daa2SKaike Wan );
763ce5daa2SKaike Wan 
773ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* rc_ack */
783ce5daa2SKaike Wan 	hfi1_rc_ack_template,
793ce5daa2SKaike Wan 	TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
803ce5daa2SKaike Wan 		 struct rvt_swqe *wqe),
813ce5daa2SKaike Wan 	TP_ARGS(qp, aeth, psn, wqe),
823ce5daa2SKaike Wan 	TP_STRUCT__entry(/* entry */
833ce5daa2SKaike Wan 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
843ce5daa2SKaike Wan 		__field(u32, qpn)
853ce5daa2SKaike Wan 		__field(u32, aeth)
863ce5daa2SKaike Wan 		__field(u32, psn)
873ce5daa2SKaike Wan 		__field(u8, opcode)
883ce5daa2SKaike Wan 		__field(u32, spsn)
893ce5daa2SKaike Wan 		__field(u32, lpsn)
903ce5daa2SKaike Wan 	),
913ce5daa2SKaike Wan 	TP_fast_assign(/* assign */
9278c14b38SJoe Perches 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
933ce5daa2SKaike Wan 		__entry->qpn = qp->ibqp.qp_num;
943ce5daa2SKaike Wan 		__entry->aeth = aeth;
953ce5daa2SKaike Wan 		__entry->psn = psn;
963ce5daa2SKaike Wan 		__entry->opcode = wqe->wr.opcode;
973ce5daa2SKaike Wan 		__entry->spsn = wqe->psn;
983ce5daa2SKaike Wan 		__entry->lpsn = wqe->lpsn;
993ce5daa2SKaike Wan 	),
1003ce5daa2SKaike Wan 	TP_printk(/* print */
1013ce5daa2SKaike Wan 		"[%s] qpn 0x%x aeth 0x%x psn 0x%x opcode 0x%x spsn 0x%x lpsn 0x%x",
1023ce5daa2SKaike Wan 		__get_str(dev),
1033ce5daa2SKaike Wan 		__entry->qpn,
1043ce5daa2SKaike Wan 		__entry->aeth,
1053ce5daa2SKaike Wan 		__entry->psn,
1063ce5daa2SKaike Wan 		__entry->opcode,
1073ce5daa2SKaike Wan 		__entry->spsn,
1083ce5daa2SKaike Wan 		__entry->lpsn
1093ce5daa2SKaike Wan 	)
1103ce5daa2SKaike Wan );
1113ce5daa2SKaike Wan 
1123ce5daa2SKaike Wan DEFINE_EVENT(/* do_rc_ack */
1133ce5daa2SKaike Wan 	hfi1_rc_ack_template, hfi1_rc_ack_do,
1143ce5daa2SKaike Wan 	TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
1153ce5daa2SKaike Wan 		 struct rvt_swqe *wqe),
1163ce5daa2SKaike Wan 	TP_ARGS(qp, aeth, psn, wqe)
1173ce5daa2SKaike Wan );
1183ce5daa2SKaike Wan 
119462b6b21SSebastian Sanchez #endif /* __HFI1_TRACE_RC_H */
120462b6b21SSebastian Sanchez 
121462b6b21SSebastian Sanchez #undef TRACE_INCLUDE_PATH
122462b6b21SSebastian Sanchez #undef TRACE_INCLUDE_FILE
123462b6b21SSebastian Sanchez #define TRACE_INCLUDE_PATH .
124462b6b21SSebastian Sanchez #define TRACE_INCLUDE_FILE trace_rc
125462b6b21SSebastian Sanchez #include <trace/define_trace.h>
126