xref: /OK3568_Linux_fs/kernel/drivers/infiniband/hw/hfi1/trace_tid.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright(c) 2018 Intel Corporation.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun #if !defined(__HFI1_TRACE_TID_H) || defined(TRACE_HEADER_MULTI_READ)
7*4882a593Smuzhiyun #define __HFI1_TRACE_TID_H
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include <linux/tracepoint.h>
10*4882a593Smuzhiyun #include <linux/trace_seq.h>
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #include "hfi.h"
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define tidtype_name(type) { PT_##type, #type }
15*4882a593Smuzhiyun #define show_tidtype(type)                   \
16*4882a593Smuzhiyun __print_symbolic(type,                       \
17*4882a593Smuzhiyun 	tidtype_name(EXPECTED),              \
18*4882a593Smuzhiyun 	tidtype_name(EAGER),                 \
19*4882a593Smuzhiyun 	tidtype_name(INVALID))               \
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #undef TRACE_SYSTEM
22*4882a593Smuzhiyun #define TRACE_SYSTEM hfi1_tid
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun u8 hfi1_trace_get_tid_ctrl(u32 ent);
25*4882a593Smuzhiyun u16 hfi1_trace_get_tid_len(u32 ent);
26*4882a593Smuzhiyun u16 hfi1_trace_get_tid_idx(u32 ent);
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun #define OPFN_PARAM_PRN "[%s] qpn 0x%x %s OPFN: qp 0x%x, max read %u, " \
29*4882a593Smuzhiyun 		       "max write %u, max length %u, jkey 0x%x timeout %u " \
30*4882a593Smuzhiyun 		       "urg %u"
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun #define TID_FLOW_PRN "[%s] qpn 0x%x flow %d: idx %d resp_ib_psn 0x%x " \
33*4882a593Smuzhiyun 		     "generation 0x%x fpsn 0x%x-%x r_next_psn 0x%x " \
34*4882a593Smuzhiyun 		     "ib_psn 0x%x-%x npagesets %u tnode_cnt %u " \
35*4882a593Smuzhiyun 		     "tidcnt %u tid_idx %u tid_offset %u length %u sent %u"
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun #define TID_NODE_PRN "[%s] qpn 0x%x  %s idx %u grp base 0x%x map 0x%x " \
38*4882a593Smuzhiyun 		     "used %u cnt %u"
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun #define RSP_INFO_PRN "[%s] qpn 0x%x state 0x%x s_state 0x%x psn 0x%x " \
41*4882a593Smuzhiyun 		     "r_psn 0x%x r_state 0x%x r_flags 0x%x " \
42*4882a593Smuzhiyun 		     "r_head_ack_queue %u s_tail_ack_queue %u " \
43*4882a593Smuzhiyun 		     "s_acked_ack_queue %u s_ack_state 0x%x " \
44*4882a593Smuzhiyun 		     "s_nak_state 0x%x s_flags 0x%x ps_flags 0x%x " \
45*4882a593Smuzhiyun 		     "iow_flags 0x%lx"
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #define SENDER_INFO_PRN "[%s] qpn 0x%x state 0x%x s_cur %u s_tail %u " \
48*4882a593Smuzhiyun 			"s_head %u s_acked %u s_last %u s_psn 0x%x " \
49*4882a593Smuzhiyun 			"s_last_psn 0x%x s_flags 0x%x ps_flags 0x%x " \
50*4882a593Smuzhiyun 			"iow_flags 0x%lx s_state 0x%x s_num_rd %u s_retry %u"
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun #define TID_READ_SENDER_PRN "[%s] qpn 0x%x newreq %u tid_r_reqs %u " \
53*4882a593Smuzhiyun 			    "tid_r_comp %u pending_tid_r_segs %u " \
54*4882a593Smuzhiyun 			    "s_flags 0x%x ps_flags 0x%x iow_flags 0x%lx " \
55*4882a593Smuzhiyun 			    "s_state 0x%x hw_flow_index %u generation 0x%x " \
56*4882a593Smuzhiyun 			    "fpsn 0x%x"
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun #define TID_REQ_PRN "[%s] qpn 0x%x newreq %u opcode 0x%x psn 0x%x lpsn 0x%x " \
59*4882a593Smuzhiyun 		    "cur_seg %u comp_seg %u ack_seg %u alloc_seg %u " \
60*4882a593Smuzhiyun 		    "total_segs %u setup_head %u clear_tail %u flow_idx %u " \
61*4882a593Smuzhiyun 		    "acked_tail %u state %u r_ack_psn 0x%x r_flow_psn 0x%x " \
62*4882a593Smuzhiyun 		    "r_last_ackd 0x%x s_next_psn 0x%x"
63*4882a593Smuzhiyun 
64*4882a593Smuzhiyun #define RCV_ERR_PRN "[%s] qpn 0x%x s_flags 0x%x state 0x%x " \
65*4882a593Smuzhiyun 		    "s_acked_ack_queue %u s_tail_ack_queue %u " \
66*4882a593Smuzhiyun 		    "r_head_ack_queue %u opcode 0x%x psn 0x%x r_psn 0x%x " \
67*4882a593Smuzhiyun 		    " diff %d"
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun #define TID_WRITE_RSPDR_PRN "[%s] qpn 0x%x r_tid_head %u r_tid_tail %u " \
70*4882a593Smuzhiyun 			    "r_tid_ack %u r_tid_alloc %u alloc_w_segs %u " \
71*4882a593Smuzhiyun 			    "pending_tid_w_segs %u sync_pt %s " \
72*4882a593Smuzhiyun 			    "ps_nak_psn 0x%x ps_nak_state 0x%x " \
73*4882a593Smuzhiyun 			    "prnr_nak_state 0x%x hw_flow_index %u generation "\
74*4882a593Smuzhiyun 			    "0x%x fpsn 0x%x resync %s" \
75*4882a593Smuzhiyun 			    "r_next_psn_kdeth 0x%x"
76*4882a593Smuzhiyun 
77*4882a593Smuzhiyun #define TID_WRITE_SENDER_PRN "[%s] qpn 0x%x newreq %u s_tid_cur %u " \
78*4882a593Smuzhiyun 			     "s_tid_tail %u s_tid_head %u " \
79*4882a593Smuzhiyun 			     "pending_tid_w_resp %u n_requests %u " \
80*4882a593Smuzhiyun 			     "n_tid_requests %u s_flags 0x%x ps_flags 0x%x "\
81*4882a593Smuzhiyun 			     "iow_flags 0x%lx s_state 0x%x s_retry %u"
82*4882a593Smuzhiyun 
83*4882a593Smuzhiyun #define KDETH_EFLAGS_ERR_PRN "[%s] qpn 0x%x  TID ERR: RcvType 0x%x " \
84*4882a593Smuzhiyun 			     "RcvTypeError 0x%x PSN 0x%x"
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* class */
87*4882a593Smuzhiyun 	hfi1_exp_tid_reg_unreg,
88*4882a593Smuzhiyun 	TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages,
89*4882a593Smuzhiyun 		 unsigned long va, unsigned long pa, dma_addr_t dma),
90*4882a593Smuzhiyun 	TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma),
91*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
92*4882a593Smuzhiyun 		__field(unsigned int, ctxt)
93*4882a593Smuzhiyun 		__field(u16, subctxt)
94*4882a593Smuzhiyun 		__field(u32, rarr)
95*4882a593Smuzhiyun 		__field(u32, npages)
96*4882a593Smuzhiyun 		__field(unsigned long, va)
97*4882a593Smuzhiyun 		__field(unsigned long, pa)
98*4882a593Smuzhiyun 		__field(dma_addr_t, dma)
99*4882a593Smuzhiyun 	),
100*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
101*4882a593Smuzhiyun 		__entry->ctxt = ctxt;
102*4882a593Smuzhiyun 		__entry->subctxt = subctxt;
103*4882a593Smuzhiyun 		__entry->rarr = rarr;
104*4882a593Smuzhiyun 		__entry->npages = npages;
105*4882a593Smuzhiyun 		__entry->va = va;
106*4882a593Smuzhiyun 		__entry->pa = pa;
107*4882a593Smuzhiyun 		__entry->dma = dma;
108*4882a593Smuzhiyun 	),
109*4882a593Smuzhiyun 	TP_printk("[%u:%u] entry:%u, %u pages @ 0x%lx, va:0x%lx dma:0x%llx",
110*4882a593Smuzhiyun 		  __entry->ctxt,
111*4882a593Smuzhiyun 		  __entry->subctxt,
112*4882a593Smuzhiyun 		  __entry->rarr,
113*4882a593Smuzhiyun 		  __entry->npages,
114*4882a593Smuzhiyun 		  __entry->pa,
115*4882a593Smuzhiyun 		  __entry->va,
116*4882a593Smuzhiyun 		  __entry->dma
117*4882a593Smuzhiyun 	)
118*4882a593Smuzhiyun );
119*4882a593Smuzhiyun 
120*4882a593Smuzhiyun DEFINE_EVENT(/* exp_tid_unreg */
121*4882a593Smuzhiyun 	hfi1_exp_tid_reg_unreg, hfi1_exp_tid_unreg,
122*4882a593Smuzhiyun 	TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages,
123*4882a593Smuzhiyun 		 unsigned long va, unsigned long pa, dma_addr_t dma),
124*4882a593Smuzhiyun 	TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma)
125*4882a593Smuzhiyun );
126*4882a593Smuzhiyun 
127*4882a593Smuzhiyun DEFINE_EVENT(/* exp_tid_reg */
128*4882a593Smuzhiyun 	hfi1_exp_tid_reg_unreg, hfi1_exp_tid_reg,
129*4882a593Smuzhiyun 	TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages,
130*4882a593Smuzhiyun 		 unsigned long va, unsigned long pa, dma_addr_t dma),
131*4882a593Smuzhiyun 	TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma)
132*4882a593Smuzhiyun );
133*4882a593Smuzhiyun 
134*4882a593Smuzhiyun TRACE_EVENT(/* put_tid */
135*4882a593Smuzhiyun 	hfi1_put_tid,
136*4882a593Smuzhiyun 	TP_PROTO(struct hfi1_devdata *dd,
137*4882a593Smuzhiyun 		 u32 index, u32 type, unsigned long pa, u16 order),
138*4882a593Smuzhiyun 	TP_ARGS(dd, index, type, pa, order),
139*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
140*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd)
141*4882a593Smuzhiyun 		__field(unsigned long, pa)
142*4882a593Smuzhiyun 		__field(u32, index)
143*4882a593Smuzhiyun 		__field(u32, type)
144*4882a593Smuzhiyun 		__field(u16, order)
145*4882a593Smuzhiyun 	),
146*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
147*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd);
148*4882a593Smuzhiyun 		__entry->pa = pa;
149*4882a593Smuzhiyun 		__entry->index = index;
150*4882a593Smuzhiyun 		__entry->type = type;
151*4882a593Smuzhiyun 		__entry->order = order;
152*4882a593Smuzhiyun 	),
153*4882a593Smuzhiyun 	TP_printk("[%s] type %s pa %lx index %u order %u",
154*4882a593Smuzhiyun 		  __get_str(dev),
155*4882a593Smuzhiyun 		  show_tidtype(__entry->type),
156*4882a593Smuzhiyun 		  __entry->pa,
157*4882a593Smuzhiyun 		  __entry->index,
158*4882a593Smuzhiyun 		  __entry->order
159*4882a593Smuzhiyun 	)
160*4882a593Smuzhiyun );
161*4882a593Smuzhiyun 
162*4882a593Smuzhiyun TRACE_EVENT(/* exp_tid_inval */
163*4882a593Smuzhiyun 	hfi1_exp_tid_inval,
164*4882a593Smuzhiyun 	TP_PROTO(unsigned int ctxt, u16 subctxt, unsigned long va, u32 rarr,
165*4882a593Smuzhiyun 		 u32 npages, dma_addr_t dma),
166*4882a593Smuzhiyun 	TP_ARGS(ctxt, subctxt, va, rarr, npages, dma),
167*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
168*4882a593Smuzhiyun 		__field(unsigned int, ctxt)
169*4882a593Smuzhiyun 		__field(u16, subctxt)
170*4882a593Smuzhiyun 		__field(unsigned long, va)
171*4882a593Smuzhiyun 		__field(u32, rarr)
172*4882a593Smuzhiyun 		__field(u32, npages)
173*4882a593Smuzhiyun 		__field(dma_addr_t, dma)
174*4882a593Smuzhiyun 	),
175*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
176*4882a593Smuzhiyun 		__entry->ctxt = ctxt;
177*4882a593Smuzhiyun 		__entry->subctxt = subctxt;
178*4882a593Smuzhiyun 		__entry->va = va;
179*4882a593Smuzhiyun 		__entry->rarr = rarr;
180*4882a593Smuzhiyun 		__entry->npages = npages;
181*4882a593Smuzhiyun 		__entry->dma = dma;
182*4882a593Smuzhiyun 	),
183*4882a593Smuzhiyun 	TP_printk("[%u:%u] entry:%u, %u pages @ 0x%lx dma: 0x%llx",
184*4882a593Smuzhiyun 		  __entry->ctxt,
185*4882a593Smuzhiyun 		  __entry->subctxt,
186*4882a593Smuzhiyun 		  __entry->rarr,
187*4882a593Smuzhiyun 		  __entry->npages,
188*4882a593Smuzhiyun 		  __entry->va,
189*4882a593Smuzhiyun 		  __entry->dma
190*4882a593Smuzhiyun 	)
191*4882a593Smuzhiyun );
192*4882a593Smuzhiyun 
193*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* opfn_state */
194*4882a593Smuzhiyun 	hfi1_opfn_state_template,
195*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
196*4882a593Smuzhiyun 	TP_ARGS(qp),
197*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
198*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
199*4882a593Smuzhiyun 		__field(u32, qpn)
200*4882a593Smuzhiyun 		__field(u16, requested)
201*4882a593Smuzhiyun 		__field(u16, completed)
202*4882a593Smuzhiyun 		__field(u8, curr)
203*4882a593Smuzhiyun 	),
204*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
205*4882a593Smuzhiyun 		struct hfi1_qp_priv *priv = qp->priv;
206*4882a593Smuzhiyun 
207*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
208*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
209*4882a593Smuzhiyun 		__entry->requested = priv->opfn.requested;
210*4882a593Smuzhiyun 		__entry->completed = priv->opfn.completed;
211*4882a593Smuzhiyun 		__entry->curr = priv->opfn.curr;
212*4882a593Smuzhiyun 	),
213*4882a593Smuzhiyun 	TP_printk(/* print */
214*4882a593Smuzhiyun 		"[%s] qpn 0x%x requested 0x%x completed 0x%x curr 0x%x",
215*4882a593Smuzhiyun 		__get_str(dev),
216*4882a593Smuzhiyun 		__entry->qpn,
217*4882a593Smuzhiyun 		__entry->requested,
218*4882a593Smuzhiyun 		__entry->completed,
219*4882a593Smuzhiyun 		__entry->curr
220*4882a593Smuzhiyun 	)
221*4882a593Smuzhiyun );
222*4882a593Smuzhiyun 
223*4882a593Smuzhiyun DEFINE_EVENT(/* event */
224*4882a593Smuzhiyun 	hfi1_opfn_state_template, hfi1_opfn_state_conn_request,
225*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
226*4882a593Smuzhiyun 	TP_ARGS(qp)
227*4882a593Smuzhiyun );
228*4882a593Smuzhiyun 
229*4882a593Smuzhiyun DEFINE_EVENT(/* event */
230*4882a593Smuzhiyun 	hfi1_opfn_state_template, hfi1_opfn_state_sched_conn_request,
231*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
232*4882a593Smuzhiyun 	TP_ARGS(qp)
233*4882a593Smuzhiyun );
234*4882a593Smuzhiyun 
235*4882a593Smuzhiyun DEFINE_EVENT(/* event */
236*4882a593Smuzhiyun 	hfi1_opfn_state_template, hfi1_opfn_state_conn_response,
237*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
238*4882a593Smuzhiyun 	TP_ARGS(qp)
239*4882a593Smuzhiyun );
240*4882a593Smuzhiyun 
241*4882a593Smuzhiyun DEFINE_EVENT(/* event */
242*4882a593Smuzhiyun 	hfi1_opfn_state_template, hfi1_opfn_state_conn_reply,
243*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
244*4882a593Smuzhiyun 	TP_ARGS(qp)
245*4882a593Smuzhiyun );
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun DEFINE_EVENT(/* event */
248*4882a593Smuzhiyun 	hfi1_opfn_state_template, hfi1_opfn_state_conn_error,
249*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
250*4882a593Smuzhiyun 	TP_ARGS(qp)
251*4882a593Smuzhiyun );
252*4882a593Smuzhiyun 
253*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* opfn_data */
254*4882a593Smuzhiyun 	hfi1_opfn_data_template,
255*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
256*4882a593Smuzhiyun 	TP_ARGS(qp, capcode, data),
257*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
258*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
259*4882a593Smuzhiyun 		__field(u32, qpn)
260*4882a593Smuzhiyun 		__field(u32, state)
261*4882a593Smuzhiyun 		__field(u8, capcode)
262*4882a593Smuzhiyun 		__field(u64, data)
263*4882a593Smuzhiyun 	),
264*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
265*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
266*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
267*4882a593Smuzhiyun 		__entry->state = qp->state;
268*4882a593Smuzhiyun 		__entry->capcode = capcode;
269*4882a593Smuzhiyun 		__entry->data = data;
270*4882a593Smuzhiyun 	),
271*4882a593Smuzhiyun 	TP_printk(/* printk */
272*4882a593Smuzhiyun 		"[%s] qpn 0x%x (state 0x%x) Capcode %u data 0x%llx",
273*4882a593Smuzhiyun 		__get_str(dev),
274*4882a593Smuzhiyun 		__entry->qpn,
275*4882a593Smuzhiyun 		__entry->state,
276*4882a593Smuzhiyun 		__entry->capcode,
277*4882a593Smuzhiyun 		__entry->data
278*4882a593Smuzhiyun 	)
279*4882a593Smuzhiyun );
280*4882a593Smuzhiyun 
281*4882a593Smuzhiyun DEFINE_EVENT(/* event */
282*4882a593Smuzhiyun 	hfi1_opfn_data_template, hfi1_opfn_data_conn_request,
283*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
284*4882a593Smuzhiyun 	TP_ARGS(qp, capcode, data)
285*4882a593Smuzhiyun );
286*4882a593Smuzhiyun 
287*4882a593Smuzhiyun DEFINE_EVENT(/* event */
288*4882a593Smuzhiyun 	hfi1_opfn_data_template, hfi1_opfn_data_conn_response,
289*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
290*4882a593Smuzhiyun 	TP_ARGS(qp, capcode, data)
291*4882a593Smuzhiyun );
292*4882a593Smuzhiyun 
293*4882a593Smuzhiyun DEFINE_EVENT(/* event */
294*4882a593Smuzhiyun 	hfi1_opfn_data_template, hfi1_opfn_data_conn_reply,
295*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data),
296*4882a593Smuzhiyun 	TP_ARGS(qp, capcode, data)
297*4882a593Smuzhiyun );
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* opfn_param */
300*4882a593Smuzhiyun 	hfi1_opfn_param_template,
301*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char remote,
302*4882a593Smuzhiyun 		 struct tid_rdma_params *param),
303*4882a593Smuzhiyun 	TP_ARGS(qp, remote, param),
304*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
305*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
306*4882a593Smuzhiyun 		__field(u32, qpn)
307*4882a593Smuzhiyun 		__field(char, remote)
308*4882a593Smuzhiyun 		__field(u32, param_qp)
309*4882a593Smuzhiyun 		__field(u32, max_len)
310*4882a593Smuzhiyun 		__field(u16, jkey)
311*4882a593Smuzhiyun 		__field(u8, max_read)
312*4882a593Smuzhiyun 		__field(u8, max_write)
313*4882a593Smuzhiyun 		__field(u8, timeout)
314*4882a593Smuzhiyun 		__field(u8, urg)
315*4882a593Smuzhiyun 	),
316*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
317*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
318*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
319*4882a593Smuzhiyun 		__entry->remote = remote;
320*4882a593Smuzhiyun 		__entry->param_qp = param->qp;
321*4882a593Smuzhiyun 		__entry->max_len = param->max_len;
322*4882a593Smuzhiyun 		__entry->jkey = param->jkey;
323*4882a593Smuzhiyun 		__entry->max_read = param->max_read;
324*4882a593Smuzhiyun 		__entry->max_write = param->max_write;
325*4882a593Smuzhiyun 		__entry->timeout = param->timeout;
326*4882a593Smuzhiyun 		__entry->urg = param->urg;
327*4882a593Smuzhiyun 	),
328*4882a593Smuzhiyun 	TP_printk(/* print */
329*4882a593Smuzhiyun 		OPFN_PARAM_PRN,
330*4882a593Smuzhiyun 		__get_str(dev),
331*4882a593Smuzhiyun 		__entry->qpn,
332*4882a593Smuzhiyun 		__entry->remote ? "remote" : "local",
333*4882a593Smuzhiyun 		__entry->param_qp,
334*4882a593Smuzhiyun 		__entry->max_read,
335*4882a593Smuzhiyun 		__entry->max_write,
336*4882a593Smuzhiyun 		__entry->max_len,
337*4882a593Smuzhiyun 		__entry->jkey,
338*4882a593Smuzhiyun 		__entry->timeout,
339*4882a593Smuzhiyun 		__entry->urg
340*4882a593Smuzhiyun 	)
341*4882a593Smuzhiyun );
342*4882a593Smuzhiyun 
343*4882a593Smuzhiyun DEFINE_EVENT(/* event */
344*4882a593Smuzhiyun 	hfi1_opfn_param_template, hfi1_opfn_param,
345*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char remote,
346*4882a593Smuzhiyun 		 struct tid_rdma_params *param),
347*4882a593Smuzhiyun 	TP_ARGS(qp, remote, param)
348*4882a593Smuzhiyun );
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* msg */
351*4882a593Smuzhiyun 	hfi1_msg_template,
352*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
353*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more),
354*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
355*4882a593Smuzhiyun 		__field(u32, qpn)
356*4882a593Smuzhiyun 		__string(msg, msg)
357*4882a593Smuzhiyun 		__field(u64, more)
358*4882a593Smuzhiyun 	),
359*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
360*4882a593Smuzhiyun 		__entry->qpn = qp ? qp->ibqp.qp_num : 0;
361*4882a593Smuzhiyun 		__assign_str(msg, msg);
362*4882a593Smuzhiyun 		__entry->more = more;
363*4882a593Smuzhiyun 	),
364*4882a593Smuzhiyun 	TP_printk(/* print */
365*4882a593Smuzhiyun 		"qpn 0x%x %s 0x%llx",
366*4882a593Smuzhiyun 		__entry->qpn,
367*4882a593Smuzhiyun 		__get_str(msg),
368*4882a593Smuzhiyun 		__entry->more
369*4882a593Smuzhiyun 	)
370*4882a593Smuzhiyun );
371*4882a593Smuzhiyun 
372*4882a593Smuzhiyun DEFINE_EVENT(/* event */
373*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_opfn_conn_request,
374*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
375*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
376*4882a593Smuzhiyun );
377*4882a593Smuzhiyun 
378*4882a593Smuzhiyun DEFINE_EVENT(/* event */
379*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_opfn_conn_error,
380*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
381*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
382*4882a593Smuzhiyun );
383*4882a593Smuzhiyun 
384*4882a593Smuzhiyun DEFINE_EVENT(/* event */
385*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_alloc_tids,
386*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
387*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
388*4882a593Smuzhiyun );
389*4882a593Smuzhiyun 
390*4882a593Smuzhiyun DEFINE_EVENT(/* event */
391*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_tid_restart_req,
392*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
393*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
394*4882a593Smuzhiyun );
395*4882a593Smuzhiyun 
396*4882a593Smuzhiyun DEFINE_EVENT(/* event */
397*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_handle_kdeth_eflags,
398*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
399*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
400*4882a593Smuzhiyun );
401*4882a593Smuzhiyun 
402*4882a593Smuzhiyun DEFINE_EVENT(/* event */
403*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_tid_timeout,
404*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
405*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
406*4882a593Smuzhiyun );
407*4882a593Smuzhiyun 
408*4882a593Smuzhiyun DEFINE_EVENT(/* event */
409*4882a593Smuzhiyun 	hfi1_msg_template, hfi1_msg_tid_retry_timeout,
410*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more),
411*4882a593Smuzhiyun 	TP_ARGS(qp, msg, more)
412*4882a593Smuzhiyun );
413*4882a593Smuzhiyun 
414*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_flow_page */
415*4882a593Smuzhiyun 	hfi1_tid_flow_page_template,
416*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index,
417*4882a593Smuzhiyun 		 char mtu8k, char v1, void *vaddr),
418*4882a593Smuzhiyun 	TP_ARGS(qp, flow, index, mtu8k, v1, vaddr),
419*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
420*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
421*4882a593Smuzhiyun 		__field(u32, qpn)
422*4882a593Smuzhiyun 		__field(char, mtu8k)
423*4882a593Smuzhiyun 		__field(char, v1)
424*4882a593Smuzhiyun 		__field(u32, index)
425*4882a593Smuzhiyun 		__field(u64, page)
426*4882a593Smuzhiyun 		__field(u64, vaddr)
427*4882a593Smuzhiyun 	),
428*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
429*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
430*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
431*4882a593Smuzhiyun 		__entry->mtu8k = mtu8k;
432*4882a593Smuzhiyun 		__entry->v1 = v1;
433*4882a593Smuzhiyun 		__entry->index = index;
434*4882a593Smuzhiyun 		__entry->page = vaddr ? (u64)virt_to_page(vaddr) : 0ULL;
435*4882a593Smuzhiyun 		__entry->vaddr = (u64)vaddr;
436*4882a593Smuzhiyun 	),
437*4882a593Smuzhiyun 	TP_printk(/* print */
438*4882a593Smuzhiyun 		"[%s] qpn 0x%x page[%u]: page 0x%llx %s 0x%llx",
439*4882a593Smuzhiyun 		__get_str(dev),
440*4882a593Smuzhiyun 		__entry->qpn,
441*4882a593Smuzhiyun 		__entry->index,
442*4882a593Smuzhiyun 		__entry->page,
443*4882a593Smuzhiyun 		__entry->mtu8k ? (__entry->v1 ? "v1" : "v0") : "vaddr",
444*4882a593Smuzhiyun 		__entry->vaddr
445*4882a593Smuzhiyun 	)
446*4882a593Smuzhiyun );
447*4882a593Smuzhiyun 
448*4882a593Smuzhiyun DEFINE_EVENT(/* event */
449*4882a593Smuzhiyun 	hfi1_tid_flow_page_template, hfi1_tid_flow_page,
450*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index,
451*4882a593Smuzhiyun 		 char mtu8k, char v1, void *vaddr),
452*4882a593Smuzhiyun 	TP_ARGS(qp, flow, index, mtu8k, v1, vaddr)
453*4882a593Smuzhiyun );
454*4882a593Smuzhiyun 
455*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_pageset */
456*4882a593Smuzhiyun 	hfi1_tid_pageset_template,
457*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 index, u16 idx, u16 count),
458*4882a593Smuzhiyun 	TP_ARGS(qp, index, idx, count),
459*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
460*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
461*4882a593Smuzhiyun 		__field(u32, qpn)
462*4882a593Smuzhiyun 		__field(u32, index)
463*4882a593Smuzhiyun 		__field(u16, idx)
464*4882a593Smuzhiyun 		__field(u16, count)
465*4882a593Smuzhiyun 	),
466*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
467*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
468*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
469*4882a593Smuzhiyun 		__entry->index = index;
470*4882a593Smuzhiyun 		__entry->idx = idx;
471*4882a593Smuzhiyun 		__entry->count = count;
472*4882a593Smuzhiyun 	),
473*4882a593Smuzhiyun 	TP_printk(/* print */
474*4882a593Smuzhiyun 		"[%s] qpn 0x%x list[%u]: idx %u count %u",
475*4882a593Smuzhiyun 		__get_str(dev),
476*4882a593Smuzhiyun 		__entry->qpn,
477*4882a593Smuzhiyun 		__entry->index,
478*4882a593Smuzhiyun 		__entry->idx,
479*4882a593Smuzhiyun 		__entry->count
480*4882a593Smuzhiyun 	)
481*4882a593Smuzhiyun );
482*4882a593Smuzhiyun 
483*4882a593Smuzhiyun DEFINE_EVENT(/* event */
484*4882a593Smuzhiyun 	hfi1_tid_pageset_template, hfi1_tid_pageset,
485*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 index, u16 idx, u16 count),
486*4882a593Smuzhiyun 	TP_ARGS(qp, index, idx, count)
487*4882a593Smuzhiyun );
488*4882a593Smuzhiyun 
489*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_fow */
490*4882a593Smuzhiyun 	hfi1_tid_flow_template,
491*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
492*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow),
493*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
494*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
495*4882a593Smuzhiyun 		__field(u32, qpn)
496*4882a593Smuzhiyun 		__field(int, index)
497*4882a593Smuzhiyun 		__field(int, idx)
498*4882a593Smuzhiyun 		__field(u32, resp_ib_psn)
499*4882a593Smuzhiyun 		__field(u32, generation)
500*4882a593Smuzhiyun 		__field(u32, fspsn)
501*4882a593Smuzhiyun 		__field(u32, flpsn)
502*4882a593Smuzhiyun 		__field(u32, r_next_psn)
503*4882a593Smuzhiyun 		__field(u32, ib_spsn)
504*4882a593Smuzhiyun 		__field(u32, ib_lpsn)
505*4882a593Smuzhiyun 		__field(u32, npagesets)
506*4882a593Smuzhiyun 		__field(u32, tnode_cnt)
507*4882a593Smuzhiyun 		__field(u32, tidcnt)
508*4882a593Smuzhiyun 		__field(u32, tid_idx)
509*4882a593Smuzhiyun 		__field(u32, tid_offset)
510*4882a593Smuzhiyun 		__field(u32, length)
511*4882a593Smuzhiyun 		__field(u32, sent)
512*4882a593Smuzhiyun 	),
513*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
514*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
515*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
516*4882a593Smuzhiyun 		__entry->index = index;
517*4882a593Smuzhiyun 		__entry->idx = flow->idx;
518*4882a593Smuzhiyun 		__entry->resp_ib_psn = flow->flow_state.resp_ib_psn;
519*4882a593Smuzhiyun 		__entry->generation = flow->flow_state.generation;
520*4882a593Smuzhiyun 		__entry->fspsn = full_flow_psn(flow,
521*4882a593Smuzhiyun 					       flow->flow_state.spsn);
522*4882a593Smuzhiyun 		__entry->flpsn = full_flow_psn(flow,
523*4882a593Smuzhiyun 					       flow->flow_state.lpsn);
524*4882a593Smuzhiyun 		__entry->r_next_psn = flow->flow_state.r_next_psn;
525*4882a593Smuzhiyun 		__entry->ib_spsn = flow->flow_state.ib_spsn;
526*4882a593Smuzhiyun 		__entry->ib_lpsn = flow->flow_state.ib_lpsn;
527*4882a593Smuzhiyun 		__entry->npagesets = flow->npagesets;
528*4882a593Smuzhiyun 		__entry->tnode_cnt = flow->tnode_cnt;
529*4882a593Smuzhiyun 		__entry->tidcnt = flow->tidcnt;
530*4882a593Smuzhiyun 		__entry->tid_idx = flow->tid_idx;
531*4882a593Smuzhiyun 		__entry->tid_offset =  flow->tid_offset;
532*4882a593Smuzhiyun 		__entry->length = flow->length;
533*4882a593Smuzhiyun 		__entry->sent = flow->sent;
534*4882a593Smuzhiyun 	),
535*4882a593Smuzhiyun 	TP_printk(/* print */
536*4882a593Smuzhiyun 		TID_FLOW_PRN,
537*4882a593Smuzhiyun 		__get_str(dev),
538*4882a593Smuzhiyun 		__entry->qpn,
539*4882a593Smuzhiyun 		__entry->index,
540*4882a593Smuzhiyun 		__entry->idx,
541*4882a593Smuzhiyun 		__entry->resp_ib_psn,
542*4882a593Smuzhiyun 		__entry->generation,
543*4882a593Smuzhiyun 		__entry->fspsn,
544*4882a593Smuzhiyun 		__entry->flpsn,
545*4882a593Smuzhiyun 		__entry->r_next_psn,
546*4882a593Smuzhiyun 		__entry->ib_spsn,
547*4882a593Smuzhiyun 		__entry->ib_lpsn,
548*4882a593Smuzhiyun 		__entry->npagesets,
549*4882a593Smuzhiyun 		__entry->tnode_cnt,
550*4882a593Smuzhiyun 		__entry->tidcnt,
551*4882a593Smuzhiyun 		__entry->tid_idx,
552*4882a593Smuzhiyun 		__entry->tid_offset,
553*4882a593Smuzhiyun 		__entry->length,
554*4882a593Smuzhiyun 		__entry->sent
555*4882a593Smuzhiyun 	)
556*4882a593Smuzhiyun );
557*4882a593Smuzhiyun 
558*4882a593Smuzhiyun DEFINE_EVENT(/* event */
559*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_alloc,
560*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
561*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
562*4882a593Smuzhiyun );
563*4882a593Smuzhiyun 
564*4882a593Smuzhiyun DEFINE_EVENT(/* event */
565*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_build_read_pkt,
566*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
567*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
568*4882a593Smuzhiyun );
569*4882a593Smuzhiyun 
570*4882a593Smuzhiyun DEFINE_EVENT(/* event */
571*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_build_read_resp,
572*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
573*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
574*4882a593Smuzhiyun );
575*4882a593Smuzhiyun 
576*4882a593Smuzhiyun DEFINE_EVENT(/* event */
577*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_req,
578*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
579*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
580*4882a593Smuzhiyun );
581*4882a593Smuzhiyun 
582*4882a593Smuzhiyun DEFINE_EVENT(/* event */
583*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_resp,
584*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
585*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
586*4882a593Smuzhiyun );
587*4882a593Smuzhiyun 
588*4882a593Smuzhiyun DEFINE_EVENT(/* event */
589*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_restart_req,
590*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
591*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
592*4882a593Smuzhiyun );
593*4882a593Smuzhiyun 
594*4882a593Smuzhiyun DEFINE_EVENT(/* event */
595*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_build_write_resp,
596*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
597*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
598*4882a593Smuzhiyun );
599*4882a593Smuzhiyun 
600*4882a593Smuzhiyun DEFINE_EVENT(/* event */
601*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_rcv_write_resp,
602*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
603*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
604*4882a593Smuzhiyun );
605*4882a593Smuzhiyun 
606*4882a593Smuzhiyun DEFINE_EVENT(/* event */
607*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_build_write_data,
608*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
609*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
610*4882a593Smuzhiyun );
611*4882a593Smuzhiyun 
612*4882a593Smuzhiyun DEFINE_EVENT(/* event */
613*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_rcv_tid_ack,
614*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
615*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
616*4882a593Smuzhiyun );
617*4882a593Smuzhiyun 
618*4882a593Smuzhiyun DEFINE_EVENT(/* event */
619*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_rcv_resync,
620*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
621*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
622*4882a593Smuzhiyun );
623*4882a593Smuzhiyun 
624*4882a593Smuzhiyun DEFINE_EVENT(/* event */
625*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_handle_kdeth_eflags,
626*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
627*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
628*4882a593Smuzhiyun );
629*4882a593Smuzhiyun 
630*4882a593Smuzhiyun DEFINE_EVENT(/* event */
631*4882a593Smuzhiyun 	hfi1_tid_flow_template, hfi1_tid_flow_read_kdeth_eflags,
632*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow),
633*4882a593Smuzhiyun 	TP_ARGS(qp, index, flow)
634*4882a593Smuzhiyun );
635*4882a593Smuzhiyun 
636*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_node */
637*4882a593Smuzhiyun 	hfi1_tid_node_template,
638*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u32 index, u32 base,
639*4882a593Smuzhiyun 		 u8 map, u8 used, u8 cnt),
640*4882a593Smuzhiyun 	TP_ARGS(qp, msg, index, base, map, used, cnt),
641*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
642*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
643*4882a593Smuzhiyun 		__field(u32, qpn)
644*4882a593Smuzhiyun 		__string(msg, msg)
645*4882a593Smuzhiyun 		__field(u32, index)
646*4882a593Smuzhiyun 		__field(u32, base)
647*4882a593Smuzhiyun 		__field(u8, map)
648*4882a593Smuzhiyun 		__field(u8, used)
649*4882a593Smuzhiyun 		__field(u8, cnt)
650*4882a593Smuzhiyun 	),
651*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
652*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
653*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
654*4882a593Smuzhiyun 		__assign_str(msg, msg);
655*4882a593Smuzhiyun 		__entry->index = index;
656*4882a593Smuzhiyun 		__entry->base = base;
657*4882a593Smuzhiyun 		__entry->map = map;
658*4882a593Smuzhiyun 		__entry->used = used;
659*4882a593Smuzhiyun 		__entry->cnt = cnt;
660*4882a593Smuzhiyun 	),
661*4882a593Smuzhiyun 	TP_printk(/* print */
662*4882a593Smuzhiyun 		TID_NODE_PRN,
663*4882a593Smuzhiyun 		__get_str(dev),
664*4882a593Smuzhiyun 		__entry->qpn,
665*4882a593Smuzhiyun 		__get_str(msg),
666*4882a593Smuzhiyun 		__entry->index,
667*4882a593Smuzhiyun 		__entry->base,
668*4882a593Smuzhiyun 		__entry->map,
669*4882a593Smuzhiyun 		__entry->used,
670*4882a593Smuzhiyun 		__entry->cnt
671*4882a593Smuzhiyun 	)
672*4882a593Smuzhiyun );
673*4882a593Smuzhiyun 
674*4882a593Smuzhiyun DEFINE_EVENT(/* event */
675*4882a593Smuzhiyun 	hfi1_tid_node_template, hfi1_tid_node_add,
676*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, const char *msg, u32 index, u32 base,
677*4882a593Smuzhiyun 		 u8 map, u8 used, u8 cnt),
678*4882a593Smuzhiyun 	TP_ARGS(qp, msg, index, base, map, used, cnt)
679*4882a593Smuzhiyun );
680*4882a593Smuzhiyun 
681*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_entry */
682*4882a593Smuzhiyun 	hfi1_tid_entry_template,
683*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, u32 ent),
684*4882a593Smuzhiyun 	TP_ARGS(qp, index, ent),
685*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
686*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
687*4882a593Smuzhiyun 		__field(u32, qpn)
688*4882a593Smuzhiyun 		__field(int, index)
689*4882a593Smuzhiyun 		__field(u8, ctrl)
690*4882a593Smuzhiyun 		__field(u16, idx)
691*4882a593Smuzhiyun 		__field(u16, len)
692*4882a593Smuzhiyun 	),
693*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
694*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
695*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
696*4882a593Smuzhiyun 		__entry->index = index;
697*4882a593Smuzhiyun 		__entry->ctrl = hfi1_trace_get_tid_ctrl(ent);
698*4882a593Smuzhiyun 		__entry->idx = hfi1_trace_get_tid_idx(ent);
699*4882a593Smuzhiyun 		__entry->len = hfi1_trace_get_tid_len(ent);
700*4882a593Smuzhiyun 	),
701*4882a593Smuzhiyun 	TP_printk(/* print */
702*4882a593Smuzhiyun 		"[%s] qpn 0x%x TID entry %d: idx %u len %u ctrl 0x%x",
703*4882a593Smuzhiyun 		__get_str(dev),
704*4882a593Smuzhiyun 		__entry->qpn,
705*4882a593Smuzhiyun 		__entry->index,
706*4882a593Smuzhiyun 		__entry->idx,
707*4882a593Smuzhiyun 		__entry->len,
708*4882a593Smuzhiyun 		__entry->ctrl
709*4882a593Smuzhiyun 	)
710*4882a593Smuzhiyun );
711*4882a593Smuzhiyun 
712*4882a593Smuzhiyun DEFINE_EVENT(/* event */
713*4882a593Smuzhiyun 	hfi1_tid_entry_template, hfi1_tid_entry_alloc,
714*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, u32 entry),
715*4882a593Smuzhiyun 	TP_ARGS(qp, index, entry)
716*4882a593Smuzhiyun );
717*4882a593Smuzhiyun 
718*4882a593Smuzhiyun DEFINE_EVENT(/* event */
719*4882a593Smuzhiyun 	hfi1_tid_entry_template, hfi1_tid_entry_build_read_resp,
720*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, u32 ent),
721*4882a593Smuzhiyun 	TP_ARGS(qp, index, ent)
722*4882a593Smuzhiyun );
723*4882a593Smuzhiyun 
724*4882a593Smuzhiyun DEFINE_EVENT(/* event */
725*4882a593Smuzhiyun 	hfi1_tid_entry_template, hfi1_tid_entry_rcv_read_req,
726*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, u32 ent),
727*4882a593Smuzhiyun 	TP_ARGS(qp, index, ent)
728*4882a593Smuzhiyun );
729*4882a593Smuzhiyun 
730*4882a593Smuzhiyun DEFINE_EVENT(/* event */
731*4882a593Smuzhiyun 	hfi1_tid_entry_template, hfi1_tid_entry_rcv_write_resp,
732*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, u32 entry),
733*4882a593Smuzhiyun 	TP_ARGS(qp, index, entry)
734*4882a593Smuzhiyun );
735*4882a593Smuzhiyun 
736*4882a593Smuzhiyun DEFINE_EVENT(/* event */
737*4882a593Smuzhiyun 	hfi1_tid_entry_template, hfi1_tid_entry_build_write_data,
738*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, u32 entry),
739*4882a593Smuzhiyun 	TP_ARGS(qp, index, entry)
740*4882a593Smuzhiyun );
741*4882a593Smuzhiyun 
742*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* rsp_info */
743*4882a593Smuzhiyun 	hfi1_responder_info_template,
744*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
745*4882a593Smuzhiyun 	TP_ARGS(qp, psn),
746*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
747*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
748*4882a593Smuzhiyun 		__field(u32, qpn)
749*4882a593Smuzhiyun 		__field(u8, state)
750*4882a593Smuzhiyun 		__field(u8, s_state)
751*4882a593Smuzhiyun 		__field(u32, psn)
752*4882a593Smuzhiyun 		__field(u32, r_psn)
753*4882a593Smuzhiyun 		__field(u8, r_state)
754*4882a593Smuzhiyun 		__field(u8, r_flags)
755*4882a593Smuzhiyun 		__field(u8, r_head_ack_queue)
756*4882a593Smuzhiyun 		__field(u8, s_tail_ack_queue)
757*4882a593Smuzhiyun 		__field(u8, s_acked_ack_queue)
758*4882a593Smuzhiyun 		__field(u8, s_ack_state)
759*4882a593Smuzhiyun 		__field(u8, s_nak_state)
760*4882a593Smuzhiyun 		__field(u8, r_nak_state)
761*4882a593Smuzhiyun 		__field(u32, s_flags)
762*4882a593Smuzhiyun 		__field(u32, ps_flags)
763*4882a593Smuzhiyun 		__field(unsigned long, iow_flags)
764*4882a593Smuzhiyun 	),
765*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
766*4882a593Smuzhiyun 		struct hfi1_qp_priv *priv = qp->priv;
767*4882a593Smuzhiyun 
768*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
769*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
770*4882a593Smuzhiyun 		__entry->state = qp->state;
771*4882a593Smuzhiyun 		__entry->s_state = qp->s_state;
772*4882a593Smuzhiyun 		__entry->psn = psn;
773*4882a593Smuzhiyun 		__entry->r_psn = qp->r_psn;
774*4882a593Smuzhiyun 		__entry->r_state = qp->r_state;
775*4882a593Smuzhiyun 		__entry->r_flags = qp->r_flags;
776*4882a593Smuzhiyun 		__entry->r_head_ack_queue = qp->r_head_ack_queue;
777*4882a593Smuzhiyun 		__entry->s_tail_ack_queue = qp->s_tail_ack_queue;
778*4882a593Smuzhiyun 		__entry->s_acked_ack_queue = qp->s_acked_ack_queue;
779*4882a593Smuzhiyun 		__entry->s_ack_state = qp->s_ack_state;
780*4882a593Smuzhiyun 		__entry->s_nak_state = qp->s_nak_state;
781*4882a593Smuzhiyun 		__entry->s_flags = qp->s_flags;
782*4882a593Smuzhiyun 		__entry->ps_flags = priv->s_flags;
783*4882a593Smuzhiyun 		__entry->iow_flags = priv->s_iowait.flags;
784*4882a593Smuzhiyun 	),
785*4882a593Smuzhiyun 	TP_printk(/* print */
786*4882a593Smuzhiyun 		RSP_INFO_PRN,
787*4882a593Smuzhiyun 		__get_str(dev),
788*4882a593Smuzhiyun 		__entry->qpn,
789*4882a593Smuzhiyun 		__entry->state,
790*4882a593Smuzhiyun 		__entry->s_state,
791*4882a593Smuzhiyun 		__entry->psn,
792*4882a593Smuzhiyun 		__entry->r_psn,
793*4882a593Smuzhiyun 		__entry->r_state,
794*4882a593Smuzhiyun 		__entry->r_flags,
795*4882a593Smuzhiyun 		__entry->r_head_ack_queue,
796*4882a593Smuzhiyun 		__entry->s_tail_ack_queue,
797*4882a593Smuzhiyun 		__entry->s_acked_ack_queue,
798*4882a593Smuzhiyun 		__entry->s_ack_state,
799*4882a593Smuzhiyun 		__entry->s_nak_state,
800*4882a593Smuzhiyun 		__entry->s_flags,
801*4882a593Smuzhiyun 		__entry->ps_flags,
802*4882a593Smuzhiyun 		__entry->iow_flags
803*4882a593Smuzhiyun 	)
804*4882a593Smuzhiyun );
805*4882a593Smuzhiyun 
806*4882a593Smuzhiyun DEFINE_EVENT(/* event */
807*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_make_rc_ack,
808*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
809*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
810*4882a593Smuzhiyun );
811*4882a593Smuzhiyun 
812*4882a593Smuzhiyun DEFINE_EVENT(/* event */
813*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_rcv_tid_read_req,
814*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
815*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
816*4882a593Smuzhiyun );
817*4882a593Smuzhiyun 
818*4882a593Smuzhiyun DEFINE_EVENT(/* event */
819*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_tid_rcv_error,
820*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
821*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
822*4882a593Smuzhiyun );
823*4882a593Smuzhiyun 
824*4882a593Smuzhiyun DEFINE_EVENT(/* event */
825*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_tid_write_alloc_res,
826*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
827*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
828*4882a593Smuzhiyun );
829*4882a593Smuzhiyun 
830*4882a593Smuzhiyun DEFINE_EVENT(/* event */
831*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_rcv_tid_write_req,
832*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
833*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
834*4882a593Smuzhiyun );
835*4882a593Smuzhiyun 
836*4882a593Smuzhiyun DEFINE_EVENT(/* event */
837*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_build_tid_write_resp,
838*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
839*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
840*4882a593Smuzhiyun );
841*4882a593Smuzhiyun 
842*4882a593Smuzhiyun DEFINE_EVENT(/* event */
843*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_rcv_tid_write_data,
844*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
845*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
846*4882a593Smuzhiyun );
847*4882a593Smuzhiyun 
848*4882a593Smuzhiyun DEFINE_EVENT(/* event */
849*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_make_tid_ack,
850*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
851*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
852*4882a593Smuzhiyun );
853*4882a593Smuzhiyun 
854*4882a593Smuzhiyun DEFINE_EVENT(/* event */
855*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_handle_kdeth_eflags,
856*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
857*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
858*4882a593Smuzhiyun );
859*4882a593Smuzhiyun 
860*4882a593Smuzhiyun DEFINE_EVENT(/* event */
861*4882a593Smuzhiyun 	hfi1_responder_info_template, hfi1_rsp_read_kdeth_eflags,
862*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 psn),
863*4882a593Smuzhiyun 	TP_ARGS(qp, psn)
864*4882a593Smuzhiyun );
865*4882a593Smuzhiyun 
866*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* sender_info */
867*4882a593Smuzhiyun 	hfi1_sender_info_template,
868*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
869*4882a593Smuzhiyun 	TP_ARGS(qp),
870*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
871*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
872*4882a593Smuzhiyun 		__field(u32, qpn)
873*4882a593Smuzhiyun 		__field(u8, state)
874*4882a593Smuzhiyun 		__field(u32, s_cur)
875*4882a593Smuzhiyun 		__field(u32, s_tail)
876*4882a593Smuzhiyun 		__field(u32, s_head)
877*4882a593Smuzhiyun 		__field(u32, s_acked)
878*4882a593Smuzhiyun 		__field(u32, s_last)
879*4882a593Smuzhiyun 		__field(u32, s_psn)
880*4882a593Smuzhiyun 		__field(u32, s_last_psn)
881*4882a593Smuzhiyun 		__field(u32, s_flags)
882*4882a593Smuzhiyun 		__field(u32, ps_flags)
883*4882a593Smuzhiyun 		__field(unsigned long, iow_flags)
884*4882a593Smuzhiyun 		__field(u8, s_state)
885*4882a593Smuzhiyun 		__field(u8, s_num_rd)
886*4882a593Smuzhiyun 		__field(u8, s_retry)
887*4882a593Smuzhiyun 	),
888*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
889*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device))
890*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
891*4882a593Smuzhiyun 		__entry->state = qp->state;
892*4882a593Smuzhiyun 		__entry->s_cur = qp->s_cur;
893*4882a593Smuzhiyun 		__entry->s_tail = qp->s_tail;
894*4882a593Smuzhiyun 		__entry->s_head = qp->s_head;
895*4882a593Smuzhiyun 		__entry->s_acked = qp->s_acked;
896*4882a593Smuzhiyun 		__entry->s_last = qp->s_last;
897*4882a593Smuzhiyun 		__entry->s_psn = qp->s_psn;
898*4882a593Smuzhiyun 		__entry->s_last_psn = qp->s_last_psn;
899*4882a593Smuzhiyun 		__entry->s_flags = qp->s_flags;
900*4882a593Smuzhiyun 		__entry->ps_flags = ((struct hfi1_qp_priv *)qp->priv)->s_flags;
901*4882a593Smuzhiyun 		__entry->iow_flags =
902*4882a593Smuzhiyun 			((struct hfi1_qp_priv *)qp->priv)->s_iowait.flags;
903*4882a593Smuzhiyun 		__entry->s_state = qp->s_state;
904*4882a593Smuzhiyun 		__entry->s_num_rd = qp->s_num_rd_atomic;
905*4882a593Smuzhiyun 		__entry->s_retry = qp->s_retry;
906*4882a593Smuzhiyun 	),
907*4882a593Smuzhiyun 	TP_printk(/* print */
908*4882a593Smuzhiyun 		SENDER_INFO_PRN,
909*4882a593Smuzhiyun 		__get_str(dev),
910*4882a593Smuzhiyun 		__entry->qpn,
911*4882a593Smuzhiyun 		__entry->state,
912*4882a593Smuzhiyun 		__entry->s_cur,
913*4882a593Smuzhiyun 		__entry->s_tail,
914*4882a593Smuzhiyun 		__entry->s_head,
915*4882a593Smuzhiyun 		__entry->s_acked,
916*4882a593Smuzhiyun 		__entry->s_last,
917*4882a593Smuzhiyun 		__entry->s_psn,
918*4882a593Smuzhiyun 		__entry->s_last_psn,
919*4882a593Smuzhiyun 		__entry->s_flags,
920*4882a593Smuzhiyun 		__entry->ps_flags,
921*4882a593Smuzhiyun 		__entry->iow_flags,
922*4882a593Smuzhiyun 		__entry->s_state,
923*4882a593Smuzhiyun 		__entry->s_num_rd,
924*4882a593Smuzhiyun 		__entry->s_retry
925*4882a593Smuzhiyun 	)
926*4882a593Smuzhiyun );
927*4882a593Smuzhiyun 
928*4882a593Smuzhiyun DEFINE_EVENT(/* event */
929*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_make_rc_req,
930*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
931*4882a593Smuzhiyun 	TP_ARGS(qp)
932*4882a593Smuzhiyun );
933*4882a593Smuzhiyun 
934*4882a593Smuzhiyun DEFINE_EVENT(/* event */
935*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_reset_psn,
936*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
937*4882a593Smuzhiyun 	TP_ARGS(qp)
938*4882a593Smuzhiyun );
939*4882a593Smuzhiyun 
940*4882a593Smuzhiyun DEFINE_EVENT(/* event */
941*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_restart_rc,
942*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
943*4882a593Smuzhiyun 	TP_ARGS(qp)
944*4882a593Smuzhiyun );
945*4882a593Smuzhiyun 
946*4882a593Smuzhiyun DEFINE_EVENT(/* event */
947*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_do_rc_ack,
948*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
949*4882a593Smuzhiyun 	TP_ARGS(qp)
950*4882a593Smuzhiyun );
951*4882a593Smuzhiyun 
952*4882a593Smuzhiyun DEFINE_EVENT(/* event */
953*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_rcv_tid_read_resp,
954*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
955*4882a593Smuzhiyun 	TP_ARGS(qp)
956*4882a593Smuzhiyun );
957*4882a593Smuzhiyun 
958*4882a593Smuzhiyun DEFINE_EVENT(/* event */
959*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_rcv_tid_ack,
960*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
961*4882a593Smuzhiyun 	TP_ARGS(qp)
962*4882a593Smuzhiyun );
963*4882a593Smuzhiyun 
964*4882a593Smuzhiyun DEFINE_EVENT(/* event */
965*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_make_tid_pkt,
966*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
967*4882a593Smuzhiyun 	TP_ARGS(qp)
968*4882a593Smuzhiyun );
969*4882a593Smuzhiyun 
970*4882a593Smuzhiyun DEFINE_EVENT(/* event */
971*4882a593Smuzhiyun 	hfi1_sender_info_template, hfi1_sender_read_kdeth_eflags,
972*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
973*4882a593Smuzhiyun 	TP_ARGS(qp)
974*4882a593Smuzhiyun );
975*4882a593Smuzhiyun 
976*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_read_sender */
977*4882a593Smuzhiyun 	hfi1_tid_read_sender_template,
978*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
979*4882a593Smuzhiyun 	TP_ARGS(qp, newreq),
980*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
981*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
982*4882a593Smuzhiyun 		__field(u32, qpn)
983*4882a593Smuzhiyun 		__field(char, newreq)
984*4882a593Smuzhiyun 		__field(u32, tid_r_reqs)
985*4882a593Smuzhiyun 		__field(u32, tid_r_comp)
986*4882a593Smuzhiyun 		__field(u32, pending_tid_r_segs)
987*4882a593Smuzhiyun 		__field(u32, s_flags)
988*4882a593Smuzhiyun 		__field(u32, ps_flags)
989*4882a593Smuzhiyun 		__field(unsigned long, iow_flags)
990*4882a593Smuzhiyun 		__field(u8, s_state)
991*4882a593Smuzhiyun 		__field(u32, hw_flow_index)
992*4882a593Smuzhiyun 		__field(u32, generation)
993*4882a593Smuzhiyun 		__field(u32, fpsn)
994*4882a593Smuzhiyun 	),
995*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
996*4882a593Smuzhiyun 		struct hfi1_qp_priv *priv = qp->priv;
997*4882a593Smuzhiyun 
998*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
999*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1000*4882a593Smuzhiyun 		__entry->newreq = newreq;
1001*4882a593Smuzhiyun 		__entry->tid_r_reqs = priv->tid_r_reqs;
1002*4882a593Smuzhiyun 		__entry->tid_r_comp = priv->tid_r_comp;
1003*4882a593Smuzhiyun 		__entry->pending_tid_r_segs = priv->pending_tid_r_segs;
1004*4882a593Smuzhiyun 		__entry->s_flags = qp->s_flags;
1005*4882a593Smuzhiyun 		__entry->ps_flags = priv->s_flags;
1006*4882a593Smuzhiyun 		__entry->iow_flags = priv->s_iowait.flags;
1007*4882a593Smuzhiyun 		__entry->s_state = priv->s_state;
1008*4882a593Smuzhiyun 		__entry->hw_flow_index = priv->flow_state.index;
1009*4882a593Smuzhiyun 		__entry->generation = priv->flow_state.generation;
1010*4882a593Smuzhiyun 		__entry->fpsn = priv->flow_state.psn;
1011*4882a593Smuzhiyun 	),
1012*4882a593Smuzhiyun 	TP_printk(/* print */
1013*4882a593Smuzhiyun 		TID_READ_SENDER_PRN,
1014*4882a593Smuzhiyun 		__get_str(dev),
1015*4882a593Smuzhiyun 		__entry->qpn,
1016*4882a593Smuzhiyun 		__entry->newreq,
1017*4882a593Smuzhiyun 		__entry->tid_r_reqs,
1018*4882a593Smuzhiyun 		__entry->tid_r_comp,
1019*4882a593Smuzhiyun 		__entry->pending_tid_r_segs,
1020*4882a593Smuzhiyun 		__entry->s_flags,
1021*4882a593Smuzhiyun 		__entry->ps_flags,
1022*4882a593Smuzhiyun 		__entry->iow_flags,
1023*4882a593Smuzhiyun 		__entry->s_state,
1024*4882a593Smuzhiyun 		__entry->hw_flow_index,
1025*4882a593Smuzhiyun 		__entry->generation,
1026*4882a593Smuzhiyun 		__entry->fpsn
1027*4882a593Smuzhiyun 	)
1028*4882a593Smuzhiyun );
1029*4882a593Smuzhiyun 
1030*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1031*4882a593Smuzhiyun 	hfi1_tid_read_sender_template, hfi1_tid_read_sender_make_req,
1032*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1033*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1034*4882a593Smuzhiyun );
1035*4882a593Smuzhiyun 
1036*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1037*4882a593Smuzhiyun 	hfi1_tid_read_sender_template, hfi1_tid_read_sender_kdeth_eflags,
1038*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1039*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1040*4882a593Smuzhiyun );
1041*4882a593Smuzhiyun 
1042*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_rdma_request */
1043*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template,
1044*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1045*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1046*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req),
1047*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1048*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1049*4882a593Smuzhiyun 		__field(u32, qpn)
1050*4882a593Smuzhiyun 		__field(char, newreq)
1051*4882a593Smuzhiyun 		__field(u8, opcode)
1052*4882a593Smuzhiyun 		__field(u32, psn)
1053*4882a593Smuzhiyun 		__field(u32, lpsn)
1054*4882a593Smuzhiyun 		__field(u32, cur_seg)
1055*4882a593Smuzhiyun 		__field(u32, comp_seg)
1056*4882a593Smuzhiyun 		__field(u32, ack_seg)
1057*4882a593Smuzhiyun 		__field(u32, alloc_seg)
1058*4882a593Smuzhiyun 		__field(u32, total_segs)
1059*4882a593Smuzhiyun 		__field(u16, setup_head)
1060*4882a593Smuzhiyun 		__field(u16, clear_tail)
1061*4882a593Smuzhiyun 		__field(u16, flow_idx)
1062*4882a593Smuzhiyun 		__field(u16, acked_tail)
1063*4882a593Smuzhiyun 		__field(u32, state)
1064*4882a593Smuzhiyun 		__field(u32, r_ack_psn)
1065*4882a593Smuzhiyun 		__field(u32, r_flow_psn)
1066*4882a593Smuzhiyun 		__field(u32, r_last_acked)
1067*4882a593Smuzhiyun 		__field(u32, s_next_psn)
1068*4882a593Smuzhiyun 	),
1069*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1070*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1071*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1072*4882a593Smuzhiyun 		__entry->newreq = newreq;
1073*4882a593Smuzhiyun 		__entry->opcode = opcode;
1074*4882a593Smuzhiyun 		__entry->psn = psn;
1075*4882a593Smuzhiyun 		__entry->lpsn = lpsn;
1076*4882a593Smuzhiyun 		__entry->cur_seg = req->cur_seg;
1077*4882a593Smuzhiyun 		__entry->comp_seg = req->comp_seg;
1078*4882a593Smuzhiyun 		__entry->ack_seg = req->ack_seg;
1079*4882a593Smuzhiyun 		__entry->alloc_seg = req->alloc_seg;
1080*4882a593Smuzhiyun 		__entry->total_segs = req->total_segs;
1081*4882a593Smuzhiyun 		__entry->setup_head = req->setup_head;
1082*4882a593Smuzhiyun 		__entry->clear_tail = req->clear_tail;
1083*4882a593Smuzhiyun 		__entry->flow_idx = req->flow_idx;
1084*4882a593Smuzhiyun 		__entry->acked_tail = req->acked_tail;
1085*4882a593Smuzhiyun 		__entry->state = req->state;
1086*4882a593Smuzhiyun 		__entry->r_ack_psn = req->r_ack_psn;
1087*4882a593Smuzhiyun 		__entry->r_flow_psn = req->r_flow_psn;
1088*4882a593Smuzhiyun 		__entry->r_last_acked = req->r_last_acked;
1089*4882a593Smuzhiyun 		__entry->s_next_psn = req->s_next_psn;
1090*4882a593Smuzhiyun 	),
1091*4882a593Smuzhiyun 	TP_printk(/* print */
1092*4882a593Smuzhiyun 		TID_REQ_PRN,
1093*4882a593Smuzhiyun 		__get_str(dev),
1094*4882a593Smuzhiyun 		__entry->qpn,
1095*4882a593Smuzhiyun 		__entry->newreq,
1096*4882a593Smuzhiyun 		__entry->opcode,
1097*4882a593Smuzhiyun 		__entry->psn,
1098*4882a593Smuzhiyun 		__entry->lpsn,
1099*4882a593Smuzhiyun 		__entry->cur_seg,
1100*4882a593Smuzhiyun 		__entry->comp_seg,
1101*4882a593Smuzhiyun 		__entry->ack_seg,
1102*4882a593Smuzhiyun 		__entry->alloc_seg,
1103*4882a593Smuzhiyun 		__entry->total_segs,
1104*4882a593Smuzhiyun 		__entry->setup_head,
1105*4882a593Smuzhiyun 		__entry->clear_tail,
1106*4882a593Smuzhiyun 		__entry->flow_idx,
1107*4882a593Smuzhiyun 		__entry->acked_tail,
1108*4882a593Smuzhiyun 		__entry->state,
1109*4882a593Smuzhiyun 		__entry->r_ack_psn,
1110*4882a593Smuzhiyun 		__entry->r_flow_psn,
1111*4882a593Smuzhiyun 		__entry->r_last_acked,
1112*4882a593Smuzhiyun 		__entry->s_next_psn
1113*4882a593Smuzhiyun 	)
1114*4882a593Smuzhiyun );
1115*4882a593Smuzhiyun 
1116*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1117*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_make_req_read,
1118*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1119*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1120*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1121*4882a593Smuzhiyun );
1122*4882a593Smuzhiyun 
1123*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1124*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_build_read_req,
1125*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1126*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1127*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1128*4882a593Smuzhiyun );
1129*4882a593Smuzhiyun 
1130*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1131*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_req,
1132*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1133*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1134*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1135*4882a593Smuzhiyun );
1136*4882a593Smuzhiyun 
1137*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1138*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_resp,
1139*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1140*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1141*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1142*4882a593Smuzhiyun );
1143*4882a593Smuzhiyun 
1144*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1145*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_err,
1146*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1147*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1148*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1149*4882a593Smuzhiyun );
1150*4882a593Smuzhiyun 
1151*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1152*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_restart_req,
1153*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1154*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1155*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1156*4882a593Smuzhiyun );
1157*4882a593Smuzhiyun 
1158*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1159*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_setup_tid_wqe,
1160*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1161*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1162*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1163*4882a593Smuzhiyun );
1164*4882a593Smuzhiyun 
1165*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1166*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_write_alloc_res,
1167*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1168*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1169*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1170*4882a593Smuzhiyun );
1171*4882a593Smuzhiyun 
1172*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1173*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_write_req,
1174*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1175*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1176*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1177*4882a593Smuzhiyun );
1178*4882a593Smuzhiyun 
1179*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1180*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_build_write_resp,
1181*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1182*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1183*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1184*4882a593Smuzhiyun );
1185*4882a593Smuzhiyun 
1186*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1187*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_write_resp,
1188*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1189*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1190*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1191*4882a593Smuzhiyun );
1192*4882a593Smuzhiyun 
1193*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1194*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_write_data,
1195*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1196*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1197*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1198*4882a593Smuzhiyun );
1199*4882a593Smuzhiyun 
1200*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1201*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_tid_ack,
1202*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1203*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1204*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1205*4882a593Smuzhiyun );
1206*4882a593Smuzhiyun 
1207*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1208*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_tid_retry_timeout,
1209*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1210*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1211*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1212*4882a593Smuzhiyun );
1213*4882a593Smuzhiyun 
1214*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1215*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_resync,
1216*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1217*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1218*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1219*4882a593Smuzhiyun );
1220*4882a593Smuzhiyun 
1221*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1222*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_make_tid_pkt,
1223*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1224*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1225*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1226*4882a593Smuzhiyun );
1227*4882a593Smuzhiyun 
1228*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1229*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_make_tid_ack,
1230*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1231*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1232*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1233*4882a593Smuzhiyun );
1234*4882a593Smuzhiyun 
1235*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1236*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_handle_kdeth_eflags,
1237*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1238*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1239*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1240*4882a593Smuzhiyun );
1241*4882a593Smuzhiyun 
1242*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1243*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_read_kdeth_eflags,
1244*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1245*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1246*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1247*4882a593Smuzhiyun );
1248*4882a593Smuzhiyun 
1249*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1250*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_make_rc_ack_write,
1251*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1252*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1253*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1254*4882a593Smuzhiyun );
1255*4882a593Smuzhiyun 
1256*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1257*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_make_req_write,
1258*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1259*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1260*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1261*4882a593Smuzhiyun );
1262*4882a593Smuzhiyun 
1263*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1264*4882a593Smuzhiyun 	hfi1_tid_rdma_request_template, hfi1_tid_req_update_num_rd_atomic,
1265*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn,
1266*4882a593Smuzhiyun 		 struct tid_rdma_request *req),
1267*4882a593Smuzhiyun 	TP_ARGS(qp, newreq, opcode, psn, lpsn, req)
1268*4882a593Smuzhiyun );
1269*4882a593Smuzhiyun 
1270*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* rc_rcv_err */
1271*4882a593Smuzhiyun 	hfi1_rc_rcv_err_template,
1272*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff),
1273*4882a593Smuzhiyun 	TP_ARGS(qp, opcode, psn, diff),
1274*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1275*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1276*4882a593Smuzhiyun 		__field(u32, qpn)
1277*4882a593Smuzhiyun 		__field(u32, s_flags)
1278*4882a593Smuzhiyun 		__field(u8, state)
1279*4882a593Smuzhiyun 		__field(u8, s_acked_ack_queue)
1280*4882a593Smuzhiyun 		__field(u8, s_tail_ack_queue)
1281*4882a593Smuzhiyun 		__field(u8, r_head_ack_queue)
1282*4882a593Smuzhiyun 		__field(u32, opcode)
1283*4882a593Smuzhiyun 		__field(u32, psn)
1284*4882a593Smuzhiyun 		__field(u32, r_psn)
1285*4882a593Smuzhiyun 		__field(int, diff)
1286*4882a593Smuzhiyun 	),
1287*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1288*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device))
1289*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1290*4882a593Smuzhiyun 		__entry->s_flags = qp->s_flags;
1291*4882a593Smuzhiyun 		__entry->state = qp->state;
1292*4882a593Smuzhiyun 		__entry->s_acked_ack_queue = qp->s_acked_ack_queue;
1293*4882a593Smuzhiyun 		__entry->s_tail_ack_queue = qp->s_tail_ack_queue;
1294*4882a593Smuzhiyun 		__entry->r_head_ack_queue = qp->r_head_ack_queue;
1295*4882a593Smuzhiyun 		__entry->opcode = opcode;
1296*4882a593Smuzhiyun 		__entry->psn = psn;
1297*4882a593Smuzhiyun 		__entry->r_psn = qp->r_psn;
1298*4882a593Smuzhiyun 		__entry->diff = diff;
1299*4882a593Smuzhiyun 	),
1300*4882a593Smuzhiyun 	TP_printk(/* print */
1301*4882a593Smuzhiyun 		RCV_ERR_PRN,
1302*4882a593Smuzhiyun 		__get_str(dev),
1303*4882a593Smuzhiyun 		__entry->qpn,
1304*4882a593Smuzhiyun 		__entry->s_flags,
1305*4882a593Smuzhiyun 		__entry->state,
1306*4882a593Smuzhiyun 		__entry->s_acked_ack_queue,
1307*4882a593Smuzhiyun 		__entry->s_tail_ack_queue,
1308*4882a593Smuzhiyun 		__entry->r_head_ack_queue,
1309*4882a593Smuzhiyun 		__entry->opcode,
1310*4882a593Smuzhiyun 		__entry->psn,
1311*4882a593Smuzhiyun 		__entry->r_psn,
1312*4882a593Smuzhiyun 		__entry->diff
1313*4882a593Smuzhiyun 	)
1314*4882a593Smuzhiyun );
1315*4882a593Smuzhiyun 
1316*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1317*4882a593Smuzhiyun 	hfi1_rc_rcv_err_template, hfi1_tid_rdma_rcv_err,
1318*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff),
1319*4882a593Smuzhiyun 	TP_ARGS(qp, opcode, psn, diff)
1320*4882a593Smuzhiyun );
1321*4882a593Smuzhiyun 
1322*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* sge  */
1323*4882a593Smuzhiyun 	hfi1_sge_template,
1324*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge),
1325*4882a593Smuzhiyun 	TP_ARGS(qp, index, sge),
1326*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1327*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1328*4882a593Smuzhiyun 		__field(u32, qpn)
1329*4882a593Smuzhiyun 		__field(int, index)
1330*4882a593Smuzhiyun 		__field(u64, vaddr)
1331*4882a593Smuzhiyun 		__field(u32, sge_length)
1332*4882a593Smuzhiyun 	),
1333*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1334*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1335*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1336*4882a593Smuzhiyun 		__entry->index = index;
1337*4882a593Smuzhiyun 		__entry->vaddr = (u64)sge->vaddr;
1338*4882a593Smuzhiyun 		__entry->sge_length = sge->sge_length;
1339*4882a593Smuzhiyun 	),
1340*4882a593Smuzhiyun 	TP_printk(/* print */
1341*4882a593Smuzhiyun 		"[%s] qpn 0x%x sge %d: vaddr 0x%llx sge_length %u",
1342*4882a593Smuzhiyun 		__get_str(dev),
1343*4882a593Smuzhiyun 		__entry->qpn,
1344*4882a593Smuzhiyun 		__entry->index,
1345*4882a593Smuzhiyun 		__entry->vaddr,
1346*4882a593Smuzhiyun 		__entry->sge_length
1347*4882a593Smuzhiyun 	)
1348*4882a593Smuzhiyun );
1349*4882a593Smuzhiyun 
1350*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1351*4882a593Smuzhiyun 	hfi1_sge_template, hfi1_sge_check_align,
1352*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge),
1353*4882a593Smuzhiyun 	TP_ARGS(qp, index, sge)
1354*4882a593Smuzhiyun );
1355*4882a593Smuzhiyun 
1356*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_write_sp */
1357*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template,
1358*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1359*4882a593Smuzhiyun 	TP_ARGS(qp),
1360*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1361*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1362*4882a593Smuzhiyun 		__field(u32, qpn)
1363*4882a593Smuzhiyun 		__field(u32, r_tid_head)
1364*4882a593Smuzhiyun 		__field(u32, r_tid_tail)
1365*4882a593Smuzhiyun 		__field(u32, r_tid_ack)
1366*4882a593Smuzhiyun 		__field(u32, r_tid_alloc)
1367*4882a593Smuzhiyun 		__field(u32, alloc_w_segs)
1368*4882a593Smuzhiyun 		__field(u32, pending_tid_w_segs)
1369*4882a593Smuzhiyun 		__field(bool, sync_pt)
1370*4882a593Smuzhiyun 		__field(u32, ps_nak_psn)
1371*4882a593Smuzhiyun 		__field(u8, ps_nak_state)
1372*4882a593Smuzhiyun 		__field(u8, prnr_nak_state)
1373*4882a593Smuzhiyun 		__field(u32, hw_flow_index)
1374*4882a593Smuzhiyun 		__field(u32, generation)
1375*4882a593Smuzhiyun 		__field(u32, fpsn)
1376*4882a593Smuzhiyun 		__field(bool, resync)
1377*4882a593Smuzhiyun 		__field(u32, r_next_psn_kdeth)
1378*4882a593Smuzhiyun 	),
1379*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1380*4882a593Smuzhiyun 		struct hfi1_qp_priv *priv = qp->priv;
1381*4882a593Smuzhiyun 
1382*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1383*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1384*4882a593Smuzhiyun 		__entry->r_tid_head = priv->r_tid_head;
1385*4882a593Smuzhiyun 		__entry->r_tid_tail = priv->r_tid_tail;
1386*4882a593Smuzhiyun 		__entry->r_tid_ack = priv->r_tid_ack;
1387*4882a593Smuzhiyun 		__entry->r_tid_alloc = priv->r_tid_alloc;
1388*4882a593Smuzhiyun 		__entry->alloc_w_segs = priv->alloc_w_segs;
1389*4882a593Smuzhiyun 		__entry->pending_tid_w_segs = priv->pending_tid_w_segs;
1390*4882a593Smuzhiyun 		__entry->sync_pt = priv->sync_pt;
1391*4882a593Smuzhiyun 		__entry->ps_nak_psn = priv->s_nak_psn;
1392*4882a593Smuzhiyun 		__entry->ps_nak_state = priv->s_nak_state;
1393*4882a593Smuzhiyun 		__entry->prnr_nak_state = priv->rnr_nak_state;
1394*4882a593Smuzhiyun 		__entry->hw_flow_index = priv->flow_state.index;
1395*4882a593Smuzhiyun 		__entry->generation = priv->flow_state.generation;
1396*4882a593Smuzhiyun 		__entry->fpsn = priv->flow_state.psn;
1397*4882a593Smuzhiyun 		__entry->resync = priv->resync;
1398*4882a593Smuzhiyun 		__entry->r_next_psn_kdeth = priv->r_next_psn_kdeth;
1399*4882a593Smuzhiyun 	),
1400*4882a593Smuzhiyun 	TP_printk(/* print */
1401*4882a593Smuzhiyun 		TID_WRITE_RSPDR_PRN,
1402*4882a593Smuzhiyun 		__get_str(dev),
1403*4882a593Smuzhiyun 		__entry->qpn,
1404*4882a593Smuzhiyun 		__entry->r_tid_head,
1405*4882a593Smuzhiyun 		__entry->r_tid_tail,
1406*4882a593Smuzhiyun 		__entry->r_tid_ack,
1407*4882a593Smuzhiyun 		__entry->r_tid_alloc,
1408*4882a593Smuzhiyun 		__entry->alloc_w_segs,
1409*4882a593Smuzhiyun 		__entry->pending_tid_w_segs,
1410*4882a593Smuzhiyun 		__entry->sync_pt ? "yes" : "no",
1411*4882a593Smuzhiyun 		__entry->ps_nak_psn,
1412*4882a593Smuzhiyun 		__entry->ps_nak_state,
1413*4882a593Smuzhiyun 		__entry->prnr_nak_state,
1414*4882a593Smuzhiyun 		__entry->hw_flow_index,
1415*4882a593Smuzhiyun 		__entry->generation,
1416*4882a593Smuzhiyun 		__entry->fpsn,
1417*4882a593Smuzhiyun 		__entry->resync ? "yes" : "no",
1418*4882a593Smuzhiyun 		__entry->r_next_psn_kdeth
1419*4882a593Smuzhiyun 	)
1420*4882a593Smuzhiyun );
1421*4882a593Smuzhiyun 
1422*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1423*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_alloc_res,
1424*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1425*4882a593Smuzhiyun 	TP_ARGS(qp)
1426*4882a593Smuzhiyun );
1427*4882a593Smuzhiyun 
1428*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1429*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_rcv_req,
1430*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1431*4882a593Smuzhiyun 	TP_ARGS(qp)
1432*4882a593Smuzhiyun );
1433*4882a593Smuzhiyun 
1434*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1435*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_build_resp,
1436*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1437*4882a593Smuzhiyun 	TP_ARGS(qp)
1438*4882a593Smuzhiyun );
1439*4882a593Smuzhiyun 
1440*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1441*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_rcv_data,
1442*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1443*4882a593Smuzhiyun 	TP_ARGS(qp)
1444*4882a593Smuzhiyun );
1445*4882a593Smuzhiyun 
1446*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1447*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_rcv_resync,
1448*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1449*4882a593Smuzhiyun 	TP_ARGS(qp)
1450*4882a593Smuzhiyun );
1451*4882a593Smuzhiyun 
1452*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1453*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_make_tid_ack,
1454*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1455*4882a593Smuzhiyun 	TP_ARGS(qp)
1456*4882a593Smuzhiyun );
1457*4882a593Smuzhiyun 
1458*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1459*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_handle_kdeth_eflags,
1460*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1461*4882a593Smuzhiyun 	TP_ARGS(qp)
1462*4882a593Smuzhiyun );
1463*4882a593Smuzhiyun 
1464*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1465*4882a593Smuzhiyun 	hfi1_tid_write_rsp_template, hfi1_tid_write_rsp_make_rc_ack,
1466*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp),
1467*4882a593Smuzhiyun 	TP_ARGS(qp)
1468*4882a593Smuzhiyun );
1469*4882a593Smuzhiyun 
1470*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_write_sender */
1471*4882a593Smuzhiyun 	hfi1_tid_write_sender_template,
1472*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1473*4882a593Smuzhiyun 	TP_ARGS(qp, newreq),
1474*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1475*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1476*4882a593Smuzhiyun 		__field(u32, qpn)
1477*4882a593Smuzhiyun 		__field(char, newreq)
1478*4882a593Smuzhiyun 		__field(u32, s_tid_cur)
1479*4882a593Smuzhiyun 		__field(u32, s_tid_tail)
1480*4882a593Smuzhiyun 		__field(u32, s_tid_head)
1481*4882a593Smuzhiyun 		__field(u32, pending_tid_w_resp)
1482*4882a593Smuzhiyun 		__field(u32, n_requests)
1483*4882a593Smuzhiyun 		__field(u32, n_tid_requests)
1484*4882a593Smuzhiyun 		__field(u32, s_flags)
1485*4882a593Smuzhiyun 		__field(u32, ps_flags)
1486*4882a593Smuzhiyun 		__field(unsigned long, iow_flags)
1487*4882a593Smuzhiyun 		__field(u8, s_state)
1488*4882a593Smuzhiyun 		__field(u8, s_retry)
1489*4882a593Smuzhiyun 	),
1490*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1491*4882a593Smuzhiyun 		struct hfi1_qp_priv *priv = qp->priv;
1492*4882a593Smuzhiyun 
1493*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1494*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1495*4882a593Smuzhiyun 		__entry->newreq = newreq;
1496*4882a593Smuzhiyun 		__entry->s_tid_cur = priv->s_tid_cur;
1497*4882a593Smuzhiyun 		__entry->s_tid_tail = priv->s_tid_tail;
1498*4882a593Smuzhiyun 		__entry->s_tid_head = priv->s_tid_head;
1499*4882a593Smuzhiyun 		__entry->pending_tid_w_resp = priv->pending_tid_w_resp;
1500*4882a593Smuzhiyun 		__entry->n_requests = atomic_read(&priv->n_requests);
1501*4882a593Smuzhiyun 		__entry->n_tid_requests = atomic_read(&priv->n_tid_requests);
1502*4882a593Smuzhiyun 		__entry->s_flags = qp->s_flags;
1503*4882a593Smuzhiyun 		__entry->ps_flags = priv->s_flags;
1504*4882a593Smuzhiyun 		__entry->iow_flags = priv->s_iowait.flags;
1505*4882a593Smuzhiyun 		__entry->s_state = priv->s_state;
1506*4882a593Smuzhiyun 		__entry->s_retry = priv->s_retry;
1507*4882a593Smuzhiyun 	),
1508*4882a593Smuzhiyun 	TP_printk(/* print */
1509*4882a593Smuzhiyun 		TID_WRITE_SENDER_PRN,
1510*4882a593Smuzhiyun 		__get_str(dev),
1511*4882a593Smuzhiyun 		__entry->qpn,
1512*4882a593Smuzhiyun 		__entry->newreq,
1513*4882a593Smuzhiyun 		__entry->s_tid_cur,
1514*4882a593Smuzhiyun 		__entry->s_tid_tail,
1515*4882a593Smuzhiyun 		__entry->s_tid_head,
1516*4882a593Smuzhiyun 		__entry->pending_tid_w_resp,
1517*4882a593Smuzhiyun 		__entry->n_requests,
1518*4882a593Smuzhiyun 		__entry->n_tid_requests,
1519*4882a593Smuzhiyun 		__entry->s_flags,
1520*4882a593Smuzhiyun 		__entry->ps_flags,
1521*4882a593Smuzhiyun 		__entry->iow_flags,
1522*4882a593Smuzhiyun 		__entry->s_state,
1523*4882a593Smuzhiyun 		__entry->s_retry
1524*4882a593Smuzhiyun 	)
1525*4882a593Smuzhiyun );
1526*4882a593Smuzhiyun 
1527*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1528*4882a593Smuzhiyun 	hfi1_tid_write_sender_template, hfi1_tid_write_sender_rcv_resp,
1529*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1530*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1531*4882a593Smuzhiyun );
1532*4882a593Smuzhiyun 
1533*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1534*4882a593Smuzhiyun 	hfi1_tid_write_sender_template, hfi1_tid_write_sender_rcv_tid_ack,
1535*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1536*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1537*4882a593Smuzhiyun );
1538*4882a593Smuzhiyun 
1539*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1540*4882a593Smuzhiyun 	hfi1_tid_write_sender_template, hfi1_tid_write_sender_retry_timeout,
1541*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1542*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1543*4882a593Smuzhiyun );
1544*4882a593Smuzhiyun 
1545*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1546*4882a593Smuzhiyun 	hfi1_tid_write_sender_template, hfi1_tid_write_sender_make_tid_pkt,
1547*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1548*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1549*4882a593Smuzhiyun );
1550*4882a593Smuzhiyun 
1551*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1552*4882a593Smuzhiyun 	hfi1_tid_write_sender_template, hfi1_tid_write_sender_make_req,
1553*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1554*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1555*4882a593Smuzhiyun );
1556*4882a593Smuzhiyun 
1557*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1558*4882a593Smuzhiyun 	hfi1_tid_write_sender_template, hfi1_tid_write_sender_restart_rc,
1559*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, char newreq),
1560*4882a593Smuzhiyun 	TP_ARGS(qp, newreq)
1561*4882a593Smuzhiyun );
1562*4882a593Smuzhiyun 
1563*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* tid_ack */
1564*4882a593Smuzhiyun 	hfi1_tid_ack_template,
1565*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
1566*4882a593Smuzhiyun 		 u32 req_psn, u32 resync_psn),
1567*4882a593Smuzhiyun 	TP_ARGS(qp, aeth, psn, req_psn, resync_psn),
1568*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1569*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1570*4882a593Smuzhiyun 		__field(u32, qpn)
1571*4882a593Smuzhiyun 		__field(u32, aeth)
1572*4882a593Smuzhiyun 		__field(u32, psn)
1573*4882a593Smuzhiyun 		__field(u32, req_psn)
1574*4882a593Smuzhiyun 		__field(u32, resync_psn)
1575*4882a593Smuzhiyun 	),
1576*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1577*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device))
1578*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1579*4882a593Smuzhiyun 		__entry->aeth = aeth;
1580*4882a593Smuzhiyun 		__entry->psn = psn;
1581*4882a593Smuzhiyun 		__entry->req_psn = req_psn;
1582*4882a593Smuzhiyun 		__entry->resync_psn = resync_psn;
1583*4882a593Smuzhiyun 		),
1584*4882a593Smuzhiyun 	TP_printk(/* print */
1585*4882a593Smuzhiyun 		"[%s] qpn 0x%x aeth 0x%x psn 0x%x req_psn 0x%x resync_psn 0x%x",
1586*4882a593Smuzhiyun 		__get_str(dev),
1587*4882a593Smuzhiyun 		__entry->qpn,
1588*4882a593Smuzhiyun 		__entry->aeth,
1589*4882a593Smuzhiyun 		__entry->psn,
1590*4882a593Smuzhiyun 		__entry->req_psn,
1591*4882a593Smuzhiyun 		__entry->resync_psn
1592*4882a593Smuzhiyun 	)
1593*4882a593Smuzhiyun );
1594*4882a593Smuzhiyun 
1595*4882a593Smuzhiyun DEFINE_EVENT(/* rcv_tid_ack */
1596*4882a593Smuzhiyun 	hfi1_tid_ack_template, hfi1_rcv_tid_ack,
1597*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u32 aeth, u32 psn,
1598*4882a593Smuzhiyun 		 u32 req_psn, u32 resync_psn),
1599*4882a593Smuzhiyun 	TP_ARGS(qp, aeth, psn, req_psn, resync_psn)
1600*4882a593Smuzhiyun );
1601*4882a593Smuzhiyun 
1602*4882a593Smuzhiyun DECLARE_EVENT_CLASS(/* kdeth_eflags_error */
1603*4882a593Smuzhiyun 	hfi1_kdeth_eflags_error_template,
1604*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u8 rcv_type, u8 rte, u32 psn),
1605*4882a593Smuzhiyun 	TP_ARGS(qp, rcv_type, rte, psn),
1606*4882a593Smuzhiyun 	TP_STRUCT__entry(/* entry */
1607*4882a593Smuzhiyun 		DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
1608*4882a593Smuzhiyun 		__field(u32, qpn)
1609*4882a593Smuzhiyun 		__field(u8, rcv_type)
1610*4882a593Smuzhiyun 		__field(u8, rte)
1611*4882a593Smuzhiyun 		__field(u32, psn)
1612*4882a593Smuzhiyun 	),
1613*4882a593Smuzhiyun 	TP_fast_assign(/* assign */
1614*4882a593Smuzhiyun 		DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device));
1615*4882a593Smuzhiyun 		__entry->qpn = qp->ibqp.qp_num;
1616*4882a593Smuzhiyun 		__entry->rcv_type = rcv_type;
1617*4882a593Smuzhiyun 		__entry->rte = rte;
1618*4882a593Smuzhiyun 		__entry->psn = psn;
1619*4882a593Smuzhiyun 	),
1620*4882a593Smuzhiyun 	TP_printk(/* print */
1621*4882a593Smuzhiyun 		KDETH_EFLAGS_ERR_PRN,
1622*4882a593Smuzhiyun 		__get_str(dev),
1623*4882a593Smuzhiyun 		__entry->qpn,
1624*4882a593Smuzhiyun 		__entry->rcv_type,
1625*4882a593Smuzhiyun 		__entry->rte,
1626*4882a593Smuzhiyun 		__entry->psn
1627*4882a593Smuzhiyun 	)
1628*4882a593Smuzhiyun );
1629*4882a593Smuzhiyun 
1630*4882a593Smuzhiyun DEFINE_EVENT(/* event */
1631*4882a593Smuzhiyun 	hfi1_kdeth_eflags_error_template, hfi1_eflags_err_write,
1632*4882a593Smuzhiyun 	TP_PROTO(struct rvt_qp *qp, u8 rcv_type, u8 rte, u32 psn),
1633*4882a593Smuzhiyun 	TP_ARGS(qp, rcv_type, rte, psn)
1634*4882a593Smuzhiyun );
1635*4882a593Smuzhiyun 
1636*4882a593Smuzhiyun #endif /* __HFI1_TRACE_TID_H */
1637*4882a593Smuzhiyun 
1638*4882a593Smuzhiyun #undef TRACE_INCLUDE_PATH
1639*4882a593Smuzhiyun #undef TRACE_INCLUDE_FILE
1640*4882a593Smuzhiyun #define TRACE_INCLUDE_PATH .
1641*4882a593Smuzhiyun #define TRACE_INCLUDE_FILE trace_tid
1642*4882a593Smuzhiyun #include <trace/define_trace.h>
1643