1a131d164SKaike Wan /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */ 2a131d164SKaike Wan /* 3a131d164SKaike Wan * Copyright(c) 2018 Intel Corporation. 4a131d164SKaike Wan * 5a131d164SKaike Wan */ 6a131d164SKaike Wan #if !defined(__HFI1_TRACE_TID_H) || defined(TRACE_HEADER_MULTI_READ) 7a131d164SKaike Wan #define __HFI1_TRACE_TID_H 8a131d164SKaike Wan 9a131d164SKaike Wan #include <linux/tracepoint.h> 10a131d164SKaike Wan #include <linux/trace_seq.h> 11a131d164SKaike Wan 12a131d164SKaike Wan #include "hfi.h" 13a131d164SKaike Wan 14a131d164SKaike Wan #define tidtype_name(type) { PT_##type, #type } 15a131d164SKaike Wan #define show_tidtype(type) \ 16a131d164SKaike Wan __print_symbolic(type, \ 17a131d164SKaike Wan tidtype_name(EXPECTED), \ 18a131d164SKaike Wan tidtype_name(EAGER), \ 19a131d164SKaike Wan tidtype_name(INVALID)) \ 20a131d164SKaike Wan 21a131d164SKaike Wan #undef TRACE_SYSTEM 22a131d164SKaike Wan #define TRACE_SYSTEM hfi1_tid 23a131d164SKaike Wan 2484f4a40dSKaike Wan u8 hfi1_trace_get_tid_ctrl(u32 ent); 2584f4a40dSKaike Wan u16 hfi1_trace_get_tid_len(u32 ent); 2684f4a40dSKaike Wan u16 hfi1_trace_get_tid_idx(u32 ent); 2784f4a40dSKaike Wan 28a131d164SKaike Wan #define OPFN_PARAM_PRN "[%s] qpn 0x%x %s OPFN: qp 0x%x, max read %u, " \ 29a131d164SKaike Wan "max write %u, max length %u, jkey 0x%x timeout %u " \ 30a131d164SKaike Wan "urg %u" 31a131d164SKaike Wan 3284f4a40dSKaike Wan #define TID_FLOW_PRN "[%s] qpn 0x%x flow %d: idx %d resp_ib_psn 0x%x " \ 3384f4a40dSKaike Wan "generation 0x%x fpsn 0x%x-%x r_next_psn 0x%x " \ 34*3ce5daa2SKaike Wan "ib_psn 0x%x-%x npagesets %u tnode_cnt %u " \ 35*3ce5daa2SKaike Wan "tidcnt %u tid_idx %u tid_offset %u length %u sent %u" 3684f4a40dSKaike Wan 3784f4a40dSKaike Wan #define TID_NODE_PRN "[%s] qpn 0x%x %s idx %u grp base 0x%x map 0x%x " \ 3884f4a40dSKaike Wan "used %u cnt %u" 3984f4a40dSKaike Wan 40*3ce5daa2SKaike Wan #define RSP_INFO_PRN "[%s] qpn 0x%x state 0x%x s_state 0x%x psn 0x%x " \ 41*3ce5daa2SKaike Wan "r_psn 0x%x r_state 0x%x r_flags 0x%x " \ 42*3ce5daa2SKaike Wan "r_head_ack_queue %u s_tail_ack_queue %u " \ 43*3ce5daa2SKaike Wan "s_ack_state 0x%x " \ 44*3ce5daa2SKaike Wan "s_nak_state 0x%x s_flags 0x%x ps_flags 0x%x " \ 45*3ce5daa2SKaike Wan "iow_flags 0x%lx" 46*3ce5daa2SKaike Wan 47*3ce5daa2SKaike Wan #define SENDER_INFO_PRN "[%s] qpn 0x%x state 0x%x s_cur %u s_tail %u " \ 48*3ce5daa2SKaike Wan "s_head %u s_acked %u s_last %u s_psn 0x%x " \ 49*3ce5daa2SKaike Wan "s_last_psn 0x%x s_flags 0x%x ps_flags 0x%x " \ 50*3ce5daa2SKaike Wan "iow_flags 0x%lx s_state 0x%x s_num_rd %u s_retry %u" 51*3ce5daa2SKaike Wan 52*3ce5daa2SKaike Wan #define TID_READ_SENDER_PRN "[%s] qpn 0x%x newreq %u tid_r_reqs %u " \ 53*3ce5daa2SKaike Wan "tid_r_comp %u pending_tid_r_segs %u " \ 54*3ce5daa2SKaike Wan "s_flags 0x%x ps_flags 0x%x iow_flags 0x%lx " \ 55*3ce5daa2SKaike Wan "hw_flow_index %u generation 0x%x " \ 56*3ce5daa2SKaike Wan "fpsn 0x%x flow_flags 0x%x" 57*3ce5daa2SKaike Wan 58*3ce5daa2SKaike Wan #define TID_REQ_PRN "[%s] qpn 0x%x newreq %u opcode 0x%x psn 0x%x lpsn 0x%x " \ 59*3ce5daa2SKaike Wan "cur_seg %u comp_seg %u ack_seg %u " \ 60*3ce5daa2SKaike Wan "total_segs %u setup_head %u clear_tail %u flow_idx %u " \ 61*3ce5daa2SKaike Wan "state %u r_flow_psn 0x%x " \ 62*3ce5daa2SKaike Wan "s_next_psn 0x%x" 63*3ce5daa2SKaike Wan 64*3ce5daa2SKaike Wan #define RCV_ERR_PRN "[%s] qpn 0x%x s_flags 0x%x state 0x%x " \ 65*3ce5daa2SKaike Wan "s_tail_ack_queue %u " \ 66*3ce5daa2SKaike Wan "r_head_ack_queue %u opcode 0x%x psn 0x%x r_psn 0x%x " \ 67*3ce5daa2SKaike Wan " diff %d" 68*3ce5daa2SKaike Wan 69a131d164SKaike Wan DECLARE_EVENT_CLASS(/* class */ 70a131d164SKaike Wan hfi1_exp_tid_reg_unreg, 71a131d164SKaike Wan TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages, 72a131d164SKaike Wan unsigned long va, unsigned long pa, dma_addr_t dma), 73a131d164SKaike Wan TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma), 74a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 75a131d164SKaike Wan __field(unsigned int, ctxt) 76a131d164SKaike Wan __field(u16, subctxt) 77a131d164SKaike Wan __field(u32, rarr) 78a131d164SKaike Wan __field(u32, npages) 79a131d164SKaike Wan __field(unsigned long, va) 80a131d164SKaike Wan __field(unsigned long, pa) 81a131d164SKaike Wan __field(dma_addr_t, dma) 82a131d164SKaike Wan ), 83a131d164SKaike Wan TP_fast_assign(/* assign */ 84a131d164SKaike Wan __entry->ctxt = ctxt; 85a131d164SKaike Wan __entry->subctxt = subctxt; 86a131d164SKaike Wan __entry->rarr = rarr; 87a131d164SKaike Wan __entry->npages = npages; 88a131d164SKaike Wan __entry->va = va; 89a131d164SKaike Wan __entry->pa = pa; 90a131d164SKaike Wan __entry->dma = dma; 91a131d164SKaike Wan ), 92a131d164SKaike Wan TP_printk("[%u:%u] entry:%u, %u pages @ 0x%lx, va:0x%lx dma:0x%llx", 93a131d164SKaike Wan __entry->ctxt, 94a131d164SKaike Wan __entry->subctxt, 95a131d164SKaike Wan __entry->rarr, 96a131d164SKaike Wan __entry->npages, 97a131d164SKaike Wan __entry->pa, 98a131d164SKaike Wan __entry->va, 99a131d164SKaike Wan __entry->dma 100a131d164SKaike Wan ) 101a131d164SKaike Wan ); 102a131d164SKaike Wan 103a131d164SKaike Wan DEFINE_EVENT(/* exp_tid_unreg */ 104a131d164SKaike Wan hfi1_exp_tid_reg_unreg, hfi1_exp_tid_unreg, 105a131d164SKaike Wan TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages, 106a131d164SKaike Wan unsigned long va, unsigned long pa, dma_addr_t dma), 107a131d164SKaike Wan TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma) 108a131d164SKaike Wan ); 109a131d164SKaike Wan 110a131d164SKaike Wan DEFINE_EVENT(/* exp_tid_reg */ 111a131d164SKaike Wan hfi1_exp_tid_reg_unreg, hfi1_exp_tid_reg, 112a131d164SKaike Wan TP_PROTO(unsigned int ctxt, u16 subctxt, u32 rarr, u32 npages, 113a131d164SKaike Wan unsigned long va, unsigned long pa, dma_addr_t dma), 114a131d164SKaike Wan TP_ARGS(ctxt, subctxt, rarr, npages, va, pa, dma) 115a131d164SKaike Wan ); 116a131d164SKaike Wan 117a131d164SKaike Wan TRACE_EVENT(/* put_tid */ 118a131d164SKaike Wan hfi1_put_tid, 119a131d164SKaike Wan TP_PROTO(struct hfi1_devdata *dd, 120a131d164SKaike Wan u32 index, u32 type, unsigned long pa, u16 order), 121a131d164SKaike Wan TP_ARGS(dd, index, type, pa, order), 122a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 123a131d164SKaike Wan DD_DEV_ENTRY(dd) 124a131d164SKaike Wan __field(unsigned long, pa); 125a131d164SKaike Wan __field(u32, index); 126a131d164SKaike Wan __field(u32, type); 127a131d164SKaike Wan __field(u16, order); 128a131d164SKaike Wan ), 129a131d164SKaike Wan TP_fast_assign(/* assign */ 130a131d164SKaike Wan DD_DEV_ASSIGN(dd); 131a131d164SKaike Wan __entry->pa = pa; 132a131d164SKaike Wan __entry->index = index; 133a131d164SKaike Wan __entry->type = type; 134a131d164SKaike Wan __entry->order = order; 135a131d164SKaike Wan ), 136a131d164SKaike Wan TP_printk("[%s] type %s pa %lx index %u order %u", 137a131d164SKaike Wan __get_str(dev), 138a131d164SKaike Wan show_tidtype(__entry->type), 139a131d164SKaike Wan __entry->pa, 140a131d164SKaike Wan __entry->index, 141a131d164SKaike Wan __entry->order 142a131d164SKaike Wan ) 143a131d164SKaike Wan ); 144a131d164SKaike Wan 145a131d164SKaike Wan TRACE_EVENT(/* exp_tid_inval */ 146a131d164SKaike Wan hfi1_exp_tid_inval, 147a131d164SKaike Wan TP_PROTO(unsigned int ctxt, u16 subctxt, unsigned long va, u32 rarr, 148a131d164SKaike Wan u32 npages, dma_addr_t dma), 149a131d164SKaike Wan TP_ARGS(ctxt, subctxt, va, rarr, npages, dma), 150a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 151a131d164SKaike Wan __field(unsigned int, ctxt) 152a131d164SKaike Wan __field(u16, subctxt) 153a131d164SKaike Wan __field(unsigned long, va) 154a131d164SKaike Wan __field(u32, rarr) 155a131d164SKaike Wan __field(u32, npages) 156a131d164SKaike Wan __field(dma_addr_t, dma) 157a131d164SKaike Wan ), 158a131d164SKaike Wan TP_fast_assign(/* assign */ 159a131d164SKaike Wan __entry->ctxt = ctxt; 160a131d164SKaike Wan __entry->subctxt = subctxt; 161a131d164SKaike Wan __entry->va = va; 162a131d164SKaike Wan __entry->rarr = rarr; 163a131d164SKaike Wan __entry->npages = npages; 164a131d164SKaike Wan __entry->dma = dma; 165a131d164SKaike Wan ), 166a131d164SKaike Wan TP_printk("[%u:%u] entry:%u, %u pages @ 0x%lx dma: 0x%llx", 167a131d164SKaike Wan __entry->ctxt, 168a131d164SKaike Wan __entry->subctxt, 169a131d164SKaike Wan __entry->rarr, 170a131d164SKaike Wan __entry->npages, 171a131d164SKaike Wan __entry->va, 172a131d164SKaike Wan __entry->dma 173a131d164SKaike Wan ) 174a131d164SKaike Wan ); 175a131d164SKaike Wan 176a131d164SKaike Wan DECLARE_EVENT_CLASS(/* opfn_state */ 177a131d164SKaike Wan hfi1_opfn_state_template, 178a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp), 179a131d164SKaike Wan TP_ARGS(qp), 180a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 181a131d164SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 182a131d164SKaike Wan __field(u32, qpn) 183a131d164SKaike Wan __field(u16, requested) 184a131d164SKaike Wan __field(u16, completed) 185a131d164SKaike Wan __field(u8, curr) 186a131d164SKaike Wan ), 187a131d164SKaike Wan TP_fast_assign(/* assign */ 188a131d164SKaike Wan struct hfi1_qp_priv *priv = qp->priv; 189a131d164SKaike Wan 190a131d164SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 191a131d164SKaike Wan __entry->qpn = qp->ibqp.qp_num; 192a131d164SKaike Wan __entry->requested = priv->opfn.requested; 193a131d164SKaike Wan __entry->completed = priv->opfn.completed; 194a131d164SKaike Wan __entry->curr = priv->opfn.curr; 195a131d164SKaike Wan ), 196a131d164SKaike Wan TP_printk(/* print */ 197a131d164SKaike Wan "[%s] qpn 0x%x requested 0x%x completed 0x%x curr 0x%x", 198a131d164SKaike Wan __get_str(dev), 199a131d164SKaike Wan __entry->qpn, 200a131d164SKaike Wan __entry->requested, 201a131d164SKaike Wan __entry->completed, 202a131d164SKaike Wan __entry->curr 203a131d164SKaike Wan ) 204a131d164SKaike Wan ); 205a131d164SKaike Wan 206a131d164SKaike Wan DEFINE_EVENT(/* event */ 207a131d164SKaike Wan hfi1_opfn_state_template, hfi1_opfn_state_conn_request, 208a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp), 209a131d164SKaike Wan TP_ARGS(qp) 210a131d164SKaike Wan ); 211a131d164SKaike Wan 212a131d164SKaike Wan DEFINE_EVENT(/* event */ 213a131d164SKaike Wan hfi1_opfn_state_template, hfi1_opfn_state_sched_conn_request, 214a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp), 215a131d164SKaike Wan TP_ARGS(qp) 216a131d164SKaike Wan ); 217a131d164SKaike Wan 218a131d164SKaike Wan DEFINE_EVENT(/* event */ 219a131d164SKaike Wan hfi1_opfn_state_template, hfi1_opfn_state_conn_response, 220a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp), 221a131d164SKaike Wan TP_ARGS(qp) 222a131d164SKaike Wan ); 223a131d164SKaike Wan 224a131d164SKaike Wan DEFINE_EVENT(/* event */ 225a131d164SKaike Wan hfi1_opfn_state_template, hfi1_opfn_state_conn_reply, 226a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp), 227a131d164SKaike Wan TP_ARGS(qp) 228a131d164SKaike Wan ); 229a131d164SKaike Wan 230a131d164SKaike Wan DEFINE_EVENT(/* event */ 231a131d164SKaike Wan hfi1_opfn_state_template, hfi1_opfn_state_conn_error, 232a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp), 233a131d164SKaike Wan TP_ARGS(qp) 234a131d164SKaike Wan ); 235a131d164SKaike Wan 236a131d164SKaike Wan DECLARE_EVENT_CLASS(/* opfn_data */ 237a131d164SKaike Wan hfi1_opfn_data_template, 238a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data), 239a131d164SKaike Wan TP_ARGS(qp, capcode, data), 240a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 241a131d164SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 242a131d164SKaike Wan __field(u32, qpn) 243a131d164SKaike Wan __field(u32, state) 244a131d164SKaike Wan __field(u8, capcode) 245a131d164SKaike Wan __field(u64, data) 246a131d164SKaike Wan ), 247a131d164SKaike Wan TP_fast_assign(/* assign */ 248a131d164SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 249a131d164SKaike Wan __entry->qpn = qp->ibqp.qp_num; 250a131d164SKaike Wan __entry->state = qp->state; 251a131d164SKaike Wan __entry->capcode = capcode; 252a131d164SKaike Wan __entry->data = data; 253a131d164SKaike Wan ), 254a131d164SKaike Wan TP_printk(/* printk */ 255a131d164SKaike Wan "[%s] qpn 0x%x (state 0x%x) Capcode %u data 0x%llx", 256a131d164SKaike Wan __get_str(dev), 257a131d164SKaike Wan __entry->qpn, 258a131d164SKaike Wan __entry->state, 259a131d164SKaike Wan __entry->capcode, 260a131d164SKaike Wan __entry->data 261a131d164SKaike Wan ) 262a131d164SKaike Wan ); 263a131d164SKaike Wan 264a131d164SKaike Wan DEFINE_EVENT(/* event */ 265a131d164SKaike Wan hfi1_opfn_data_template, hfi1_opfn_data_conn_request, 266a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data), 267a131d164SKaike Wan TP_ARGS(qp, capcode, data) 268a131d164SKaike Wan ); 269a131d164SKaike Wan 270a131d164SKaike Wan DEFINE_EVENT(/* event */ 271a131d164SKaike Wan hfi1_opfn_data_template, hfi1_opfn_data_conn_response, 272a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data), 273a131d164SKaike Wan TP_ARGS(qp, capcode, data) 274a131d164SKaike Wan ); 275a131d164SKaike Wan 276a131d164SKaike Wan DEFINE_EVENT(/* event */ 277a131d164SKaike Wan hfi1_opfn_data_template, hfi1_opfn_data_conn_reply, 278a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, u8 capcode, u64 data), 279a131d164SKaike Wan TP_ARGS(qp, capcode, data) 280a131d164SKaike Wan ); 281a131d164SKaike Wan 282a131d164SKaike Wan DECLARE_EVENT_CLASS(/* opfn_param */ 283a131d164SKaike Wan hfi1_opfn_param_template, 284a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, char remote, 285a131d164SKaike Wan struct tid_rdma_params *param), 286a131d164SKaike Wan TP_ARGS(qp, remote, param), 287a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 288a131d164SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 289a131d164SKaike Wan __field(u32, qpn) 290a131d164SKaike Wan __field(char, remote) 291a131d164SKaike Wan __field(u32, param_qp) 292a131d164SKaike Wan __field(u32, max_len) 293a131d164SKaike Wan __field(u16, jkey) 294a131d164SKaike Wan __field(u8, max_read) 295a131d164SKaike Wan __field(u8, max_write) 296a131d164SKaike Wan __field(u8, timeout) 297a131d164SKaike Wan __field(u8, urg) 298a131d164SKaike Wan ), 299a131d164SKaike Wan TP_fast_assign(/* assign */ 300a131d164SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 301a131d164SKaike Wan __entry->qpn = qp->ibqp.qp_num; 302a131d164SKaike Wan __entry->remote = remote; 303a131d164SKaike Wan __entry->param_qp = param->qp; 304a131d164SKaike Wan __entry->max_len = param->max_len; 305a131d164SKaike Wan __entry->jkey = param->jkey; 306a131d164SKaike Wan __entry->max_read = param->max_read; 307a131d164SKaike Wan __entry->max_write = param->max_write; 308a131d164SKaike Wan __entry->timeout = param->timeout; 309a131d164SKaike Wan __entry->urg = param->urg; 310a131d164SKaike Wan ), 311a131d164SKaike Wan TP_printk(/* print */ 312a131d164SKaike Wan OPFN_PARAM_PRN, 313a131d164SKaike Wan __get_str(dev), 314a131d164SKaike Wan __entry->qpn, 315a131d164SKaike Wan __entry->remote ? "remote" : "local", 316a131d164SKaike Wan __entry->param_qp, 317a131d164SKaike Wan __entry->max_read, 318a131d164SKaike Wan __entry->max_write, 319a131d164SKaike Wan __entry->max_len, 320a131d164SKaike Wan __entry->jkey, 321a131d164SKaike Wan __entry->timeout, 322a131d164SKaike Wan __entry->urg 323a131d164SKaike Wan ) 324a131d164SKaike Wan ); 325a131d164SKaike Wan 326a131d164SKaike Wan DEFINE_EVENT(/* event */ 327a131d164SKaike Wan hfi1_opfn_param_template, hfi1_opfn_param, 328a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, char remote, 329a131d164SKaike Wan struct tid_rdma_params *param), 330a131d164SKaike Wan TP_ARGS(qp, remote, param) 331a131d164SKaike Wan ); 332a131d164SKaike Wan 333a131d164SKaike Wan DECLARE_EVENT_CLASS(/* msg */ 334a131d164SKaike Wan hfi1_msg_template, 335a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 336a131d164SKaike Wan TP_ARGS(qp, msg, more), 337a131d164SKaike Wan TP_STRUCT__entry(/* entry */ 338a131d164SKaike Wan __field(u32, qpn) 339a131d164SKaike Wan __string(msg, msg) 340a131d164SKaike Wan __field(u64, more) 341a131d164SKaike Wan ), 342a131d164SKaike Wan TP_fast_assign(/* assign */ 343a131d164SKaike Wan __entry->qpn = qp ? qp->ibqp.qp_num : 0; 344a131d164SKaike Wan __assign_str(msg, msg); 345a131d164SKaike Wan __entry->more = more; 346a131d164SKaike Wan ), 347a131d164SKaike Wan TP_printk(/* print */ 348a131d164SKaike Wan "qpn 0x%x %s 0x%llx", 349a131d164SKaike Wan __entry->qpn, 350a131d164SKaike Wan __get_str(msg), 351a131d164SKaike Wan __entry->more 352a131d164SKaike Wan ) 353a131d164SKaike Wan ); 354a131d164SKaike Wan 355a131d164SKaike Wan DEFINE_EVENT(/* event */ 356a131d164SKaike Wan hfi1_msg_template, hfi1_msg_opfn_conn_request, 357a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 358a131d164SKaike Wan TP_ARGS(qp, msg, more) 359a131d164SKaike Wan ); 360a131d164SKaike Wan 361a131d164SKaike Wan DEFINE_EVENT(/* event */ 362a131d164SKaike Wan hfi1_msg_template, hfi1_msg_opfn_conn_error, 363a131d164SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 364a131d164SKaike Wan TP_ARGS(qp, msg, more) 365a131d164SKaike Wan ); 366a131d164SKaike Wan 36784f4a40dSKaike Wan DEFINE_EVENT(/* event */ 36884f4a40dSKaike Wan hfi1_msg_template, hfi1_msg_alloc_tids, 36984f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 37084f4a40dSKaike Wan TP_ARGS(qp, msg, more) 37184f4a40dSKaike Wan ); 37284f4a40dSKaike Wan 373*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 374*3ce5daa2SKaike Wan hfi1_msg_template, hfi1_msg_tid_restart_req, 375*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 376*3ce5daa2SKaike Wan TP_ARGS(qp, msg, more) 377*3ce5daa2SKaike Wan ); 378*3ce5daa2SKaike Wan 379*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 380*3ce5daa2SKaike Wan hfi1_msg_template, hfi1_msg_handle_kdeth_eflags, 381*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 382*3ce5daa2SKaike Wan TP_ARGS(qp, msg, more) 383*3ce5daa2SKaike Wan ); 384*3ce5daa2SKaike Wan 38584f4a40dSKaike Wan DECLARE_EVENT_CLASS(/* tid_flow_page */ 38684f4a40dSKaike Wan hfi1_tid_flow_page_template, 38784f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index, 38884f4a40dSKaike Wan char mtu8k, char v1, void *vaddr), 38984f4a40dSKaike Wan TP_ARGS(qp, flow, index, mtu8k, v1, vaddr), 39084f4a40dSKaike Wan TP_STRUCT__entry(/* entry */ 39184f4a40dSKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 39284f4a40dSKaike Wan __field(u32, qpn) 39384f4a40dSKaike Wan __field(char, mtu8k) 39484f4a40dSKaike Wan __field(char, v1) 39584f4a40dSKaike Wan __field(u32, index) 39684f4a40dSKaike Wan __field(u64, page) 39784f4a40dSKaike Wan __field(u64, vaddr) 39884f4a40dSKaike Wan ), 39984f4a40dSKaike Wan TP_fast_assign(/* assign */ 40084f4a40dSKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 40184f4a40dSKaike Wan __entry->qpn = qp->ibqp.qp_num; 40284f4a40dSKaike Wan __entry->mtu8k = mtu8k; 40384f4a40dSKaike Wan __entry->v1 = v1; 40484f4a40dSKaike Wan __entry->index = index; 40584f4a40dSKaike Wan __entry->page = vaddr ? (u64)virt_to_page(vaddr) : 0ULL; 40684f4a40dSKaike Wan __entry->vaddr = (u64)vaddr; 40784f4a40dSKaike Wan ), 40884f4a40dSKaike Wan TP_printk(/* print */ 40984f4a40dSKaike Wan "[%s] qpn 0x%x page[%u]: page 0x%llx %s 0x%llx", 41084f4a40dSKaike Wan __get_str(dev), 41184f4a40dSKaike Wan __entry->qpn, 41284f4a40dSKaike Wan __entry->index, 41384f4a40dSKaike Wan __entry->page, 41484f4a40dSKaike Wan __entry->mtu8k ? (__entry->v1 ? "v1" : "v0") : "vaddr", 41584f4a40dSKaike Wan __entry->vaddr 41684f4a40dSKaike Wan ) 41784f4a40dSKaike Wan ); 41884f4a40dSKaike Wan 41984f4a40dSKaike Wan DEFINE_EVENT(/* event */ 42084f4a40dSKaike Wan hfi1_tid_flow_page_template, hfi1_tid_flow_page, 42184f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, struct tid_rdma_flow *flow, u32 index, 42284f4a40dSKaike Wan char mtu8k, char v1, void *vaddr), 42384f4a40dSKaike Wan TP_ARGS(qp, flow, index, mtu8k, v1, vaddr) 42484f4a40dSKaike Wan ); 42584f4a40dSKaike Wan 42684f4a40dSKaike Wan DECLARE_EVENT_CLASS(/* tid_pageset */ 42784f4a40dSKaike Wan hfi1_tid_pageset_template, 42884f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, u32 index, u16 idx, u16 count), 42984f4a40dSKaike Wan TP_ARGS(qp, index, idx, count), 43084f4a40dSKaike Wan TP_STRUCT__entry(/* entry */ 43184f4a40dSKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 43284f4a40dSKaike Wan __field(u32, qpn) 43384f4a40dSKaike Wan __field(u32, index) 43484f4a40dSKaike Wan __field(u16, idx) 43584f4a40dSKaike Wan __field(u16, count) 43684f4a40dSKaike Wan ), 43784f4a40dSKaike Wan TP_fast_assign(/* assign */ 43884f4a40dSKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 43984f4a40dSKaike Wan __entry->qpn = qp->ibqp.qp_num; 44084f4a40dSKaike Wan __entry->index = index; 44184f4a40dSKaike Wan __entry->idx = idx; 44284f4a40dSKaike Wan __entry->count = count; 44384f4a40dSKaike Wan ), 44484f4a40dSKaike Wan TP_printk(/* print */ 44584f4a40dSKaike Wan "[%s] qpn 0x%x list[%u]: idx %u count %u", 44684f4a40dSKaike Wan __get_str(dev), 44784f4a40dSKaike Wan __entry->qpn, 44884f4a40dSKaike Wan __entry->index, 44984f4a40dSKaike Wan __entry->idx, 45084f4a40dSKaike Wan __entry->count 45184f4a40dSKaike Wan ) 45284f4a40dSKaike Wan ); 45384f4a40dSKaike Wan 45484f4a40dSKaike Wan DEFINE_EVENT(/* event */ 45584f4a40dSKaike Wan hfi1_tid_pageset_template, hfi1_tid_pageset, 45684f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, u32 index, u16 idx, u16 count), 45784f4a40dSKaike Wan TP_ARGS(qp, index, idx, count) 45884f4a40dSKaike Wan ); 45984f4a40dSKaike Wan 46084f4a40dSKaike Wan DECLARE_EVENT_CLASS(/* tid_fow */ 46184f4a40dSKaike Wan hfi1_tid_flow_template, 46284f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 46384f4a40dSKaike Wan TP_ARGS(qp, index, flow), 46484f4a40dSKaike Wan TP_STRUCT__entry(/* entry */ 46584f4a40dSKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 46684f4a40dSKaike Wan __field(u32, qpn) 46784f4a40dSKaike Wan __field(int, index) 46884f4a40dSKaike Wan __field(int, idx) 46984f4a40dSKaike Wan __field(u32, resp_ib_psn) 47084f4a40dSKaike Wan __field(u32, generation) 47184f4a40dSKaike Wan __field(u32, fspsn) 47284f4a40dSKaike Wan __field(u32, flpsn) 47384f4a40dSKaike Wan __field(u32, r_next_psn) 474*3ce5daa2SKaike Wan __field(u32, ib_spsn) 475*3ce5daa2SKaike Wan __field(u32, ib_lpsn) 47684f4a40dSKaike Wan __field(u32, npagesets) 47784f4a40dSKaike Wan __field(u32, tnode_cnt) 47884f4a40dSKaike Wan __field(u32, tidcnt) 479*3ce5daa2SKaike Wan __field(u32, tid_idx) 480*3ce5daa2SKaike Wan __field(u32, tid_offset) 48184f4a40dSKaike Wan __field(u32, length) 482*3ce5daa2SKaike Wan __field(u32, sent) 48384f4a40dSKaike Wan ), 48484f4a40dSKaike Wan TP_fast_assign(/* assign */ 48584f4a40dSKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 48684f4a40dSKaike Wan __entry->qpn = qp->ibqp.qp_num; 48784f4a40dSKaike Wan __entry->index = index; 48884f4a40dSKaike Wan __entry->idx = flow->idx; 48984f4a40dSKaike Wan __entry->resp_ib_psn = flow->flow_state.resp_ib_psn; 49084f4a40dSKaike Wan __entry->generation = flow->flow_state.generation; 49184f4a40dSKaike Wan __entry->fspsn = full_flow_psn(flow, 49284f4a40dSKaike Wan flow->flow_state.spsn); 49384f4a40dSKaike Wan __entry->flpsn = full_flow_psn(flow, 49484f4a40dSKaike Wan flow->flow_state.lpsn); 49584f4a40dSKaike Wan __entry->r_next_psn = flow->flow_state.r_next_psn; 496*3ce5daa2SKaike Wan __entry->ib_spsn = flow->flow_state.ib_spsn; 497*3ce5daa2SKaike Wan __entry->ib_lpsn = flow->flow_state.ib_lpsn; 49884f4a40dSKaike Wan __entry->npagesets = flow->npagesets; 49984f4a40dSKaike Wan __entry->tnode_cnt = flow->tnode_cnt; 50084f4a40dSKaike Wan __entry->tidcnt = flow->tidcnt; 501*3ce5daa2SKaike Wan __entry->tid_idx = flow->tid_idx; 502*3ce5daa2SKaike Wan __entry->tid_offset = flow->tid_offset; 50384f4a40dSKaike Wan __entry->length = flow->length; 504*3ce5daa2SKaike Wan __entry->sent = flow->sent; 50584f4a40dSKaike Wan ), 50684f4a40dSKaike Wan TP_printk(/* print */ 50784f4a40dSKaike Wan TID_FLOW_PRN, 50884f4a40dSKaike Wan __get_str(dev), 50984f4a40dSKaike Wan __entry->qpn, 51084f4a40dSKaike Wan __entry->index, 51184f4a40dSKaike Wan __entry->idx, 51284f4a40dSKaike Wan __entry->resp_ib_psn, 51384f4a40dSKaike Wan __entry->generation, 51484f4a40dSKaike Wan __entry->fspsn, 51584f4a40dSKaike Wan __entry->flpsn, 51684f4a40dSKaike Wan __entry->r_next_psn, 517*3ce5daa2SKaike Wan __entry->ib_spsn, 518*3ce5daa2SKaike Wan __entry->ib_lpsn, 51984f4a40dSKaike Wan __entry->npagesets, 52084f4a40dSKaike Wan __entry->tnode_cnt, 52184f4a40dSKaike Wan __entry->tidcnt, 522*3ce5daa2SKaike Wan __entry->tid_idx, 523*3ce5daa2SKaike Wan __entry->tid_offset, 524*3ce5daa2SKaike Wan __entry->length, 525*3ce5daa2SKaike Wan __entry->sent 52684f4a40dSKaike Wan ) 52784f4a40dSKaike Wan ); 52884f4a40dSKaike Wan 52984f4a40dSKaike Wan DEFINE_EVENT(/* event */ 53084f4a40dSKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_alloc, 53184f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 53284f4a40dSKaike Wan TP_ARGS(qp, index, flow) 53384f4a40dSKaike Wan ); 53484f4a40dSKaike Wan 535*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 536*3ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_build_read_pkt, 537*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 538*3ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 539*3ce5daa2SKaike Wan ); 540*3ce5daa2SKaike Wan 541*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 542*3ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_build_read_resp, 543*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 544*3ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 545*3ce5daa2SKaike Wan ); 546*3ce5daa2SKaike Wan 547*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 548*3ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_req, 549*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 550*3ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 551*3ce5daa2SKaike Wan ); 552*3ce5daa2SKaike Wan 553*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 554*3ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_resp, 555*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 556*3ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 557*3ce5daa2SKaike Wan ); 558*3ce5daa2SKaike Wan 559*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 560*3ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_restart_req, 561*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 562*3ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 563*3ce5daa2SKaike Wan ); 564*3ce5daa2SKaike Wan 56584f4a40dSKaike Wan DECLARE_EVENT_CLASS(/* tid_node */ 56684f4a40dSKaike Wan hfi1_tid_node_template, 56784f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u32 index, u32 base, 56884f4a40dSKaike Wan u8 map, u8 used, u8 cnt), 56984f4a40dSKaike Wan TP_ARGS(qp, msg, index, base, map, used, cnt), 57084f4a40dSKaike Wan TP_STRUCT__entry(/* entry */ 57184f4a40dSKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 57284f4a40dSKaike Wan __field(u32, qpn) 57384f4a40dSKaike Wan __string(msg, msg) 57484f4a40dSKaike Wan __field(u32, index) 57584f4a40dSKaike Wan __field(u32, base) 57684f4a40dSKaike Wan __field(u8, map) 57784f4a40dSKaike Wan __field(u8, used) 57884f4a40dSKaike Wan __field(u8, cnt) 57984f4a40dSKaike Wan ), 58084f4a40dSKaike Wan TP_fast_assign(/* assign */ 58184f4a40dSKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 58284f4a40dSKaike Wan __entry->qpn = qp->ibqp.qp_num; 58384f4a40dSKaike Wan __assign_str(msg, msg); 58484f4a40dSKaike Wan __entry->index = index; 58584f4a40dSKaike Wan __entry->base = base; 58684f4a40dSKaike Wan __entry->map = map; 58784f4a40dSKaike Wan __entry->used = used; 58884f4a40dSKaike Wan __entry->cnt = cnt; 58984f4a40dSKaike Wan ), 59084f4a40dSKaike Wan TP_printk(/* print */ 59184f4a40dSKaike Wan TID_NODE_PRN, 59284f4a40dSKaike Wan __get_str(dev), 59384f4a40dSKaike Wan __entry->qpn, 59484f4a40dSKaike Wan __get_str(msg), 59584f4a40dSKaike Wan __entry->index, 59684f4a40dSKaike Wan __entry->base, 59784f4a40dSKaike Wan __entry->map, 59884f4a40dSKaike Wan __entry->used, 59984f4a40dSKaike Wan __entry->cnt 60084f4a40dSKaike Wan ) 60184f4a40dSKaike Wan ); 60284f4a40dSKaike Wan 60384f4a40dSKaike Wan DEFINE_EVENT(/* event */ 60484f4a40dSKaike Wan hfi1_tid_node_template, hfi1_tid_node_add, 60584f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u32 index, u32 base, 60684f4a40dSKaike Wan u8 map, u8 used, u8 cnt), 60784f4a40dSKaike Wan TP_ARGS(qp, msg, index, base, map, used, cnt) 60884f4a40dSKaike Wan ); 60984f4a40dSKaike Wan 61084f4a40dSKaike Wan DECLARE_EVENT_CLASS(/* tid_entry */ 61184f4a40dSKaike Wan hfi1_tid_entry_template, 61284f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, int index, u32 ent), 61384f4a40dSKaike Wan TP_ARGS(qp, index, ent), 61484f4a40dSKaike Wan TP_STRUCT__entry(/* entry */ 61584f4a40dSKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 61684f4a40dSKaike Wan __field(u32, qpn) 61784f4a40dSKaike Wan __field(int, index) 61884f4a40dSKaike Wan __field(u8, ctrl) 61984f4a40dSKaike Wan __field(u16, idx) 62084f4a40dSKaike Wan __field(u16, len) 62184f4a40dSKaike Wan ), 62284f4a40dSKaike Wan TP_fast_assign(/* assign */ 62384f4a40dSKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 62484f4a40dSKaike Wan __entry->qpn = qp->ibqp.qp_num; 62584f4a40dSKaike Wan __entry->index = index; 62684f4a40dSKaike Wan __entry->ctrl = hfi1_trace_get_tid_ctrl(ent); 62784f4a40dSKaike Wan __entry->idx = hfi1_trace_get_tid_idx(ent); 62884f4a40dSKaike Wan __entry->len = hfi1_trace_get_tid_len(ent); 62984f4a40dSKaike Wan ), 63084f4a40dSKaike Wan TP_printk(/* print */ 63184f4a40dSKaike Wan "[%s] qpn 0x%x TID entry %d: idx %u len %u ctrl 0x%x", 63284f4a40dSKaike Wan __get_str(dev), 63384f4a40dSKaike Wan __entry->qpn, 63484f4a40dSKaike Wan __entry->index, 63584f4a40dSKaike Wan __entry->idx, 63684f4a40dSKaike Wan __entry->len, 63784f4a40dSKaike Wan __entry->ctrl 63884f4a40dSKaike Wan ) 63984f4a40dSKaike Wan ); 64084f4a40dSKaike Wan 64184f4a40dSKaike Wan DEFINE_EVENT(/* event */ 64284f4a40dSKaike Wan hfi1_tid_entry_template, hfi1_tid_entry_alloc, 64384f4a40dSKaike Wan TP_PROTO(struct rvt_qp *qp, int index, u32 entry), 64484f4a40dSKaike Wan TP_ARGS(qp, index, entry) 64584f4a40dSKaike Wan ); 64684f4a40dSKaike Wan 647*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 648*3ce5daa2SKaike Wan hfi1_tid_entry_template, hfi1_tid_entry_build_read_resp, 649*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, u32 ent), 650*3ce5daa2SKaike Wan TP_ARGS(qp, index, ent) 651*3ce5daa2SKaike Wan ); 652*3ce5daa2SKaike Wan 653*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 654*3ce5daa2SKaike Wan hfi1_tid_entry_template, hfi1_tid_entry_rcv_read_req, 655*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, u32 ent), 656*3ce5daa2SKaike Wan TP_ARGS(qp, index, ent) 657*3ce5daa2SKaike Wan ); 658*3ce5daa2SKaike Wan 659*3ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* rsp_info */ 660*3ce5daa2SKaike Wan hfi1_responder_info_template, 661*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 662*3ce5daa2SKaike Wan TP_ARGS(qp, psn), 663*3ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 664*3ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 665*3ce5daa2SKaike Wan __field(u32, qpn) 666*3ce5daa2SKaike Wan __field(u8, state) 667*3ce5daa2SKaike Wan __field(u8, s_state) 668*3ce5daa2SKaike Wan __field(u32, psn) 669*3ce5daa2SKaike Wan __field(u32, r_psn) 670*3ce5daa2SKaike Wan __field(u8, r_state) 671*3ce5daa2SKaike Wan __field(u8, r_flags) 672*3ce5daa2SKaike Wan __field(u8, r_head_ack_queue) 673*3ce5daa2SKaike Wan __field(u8, s_tail_ack_queue) 674*3ce5daa2SKaike Wan __field(u8, s_ack_state) 675*3ce5daa2SKaike Wan __field(u8, s_nak_state) 676*3ce5daa2SKaike Wan __field(u8, r_nak_state) 677*3ce5daa2SKaike Wan __field(u32, s_flags) 678*3ce5daa2SKaike Wan __field(u32, ps_flags) 679*3ce5daa2SKaike Wan __field(unsigned long, iow_flags) 680*3ce5daa2SKaike Wan ), 681*3ce5daa2SKaike Wan TP_fast_assign(/* assign */ 682*3ce5daa2SKaike Wan struct hfi1_qp_priv *priv = qp->priv; 683*3ce5daa2SKaike Wan 684*3ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 685*3ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 686*3ce5daa2SKaike Wan __entry->state = qp->state; 687*3ce5daa2SKaike Wan __entry->s_state = qp->s_state; 688*3ce5daa2SKaike Wan __entry->psn = psn; 689*3ce5daa2SKaike Wan __entry->r_psn = qp->r_psn; 690*3ce5daa2SKaike Wan __entry->r_state = qp->r_state; 691*3ce5daa2SKaike Wan __entry->r_flags = qp->r_flags; 692*3ce5daa2SKaike Wan __entry->r_head_ack_queue = qp->r_head_ack_queue; 693*3ce5daa2SKaike Wan __entry->s_tail_ack_queue = qp->s_tail_ack_queue; 694*3ce5daa2SKaike Wan __entry->s_ack_state = qp->s_ack_state; 695*3ce5daa2SKaike Wan __entry->s_nak_state = qp->s_nak_state; 696*3ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 697*3ce5daa2SKaike Wan __entry->ps_flags = priv->s_flags; 698*3ce5daa2SKaike Wan __entry->iow_flags = priv->s_iowait.flags; 699*3ce5daa2SKaike Wan ), 700*3ce5daa2SKaike Wan TP_printk(/* print */ 701*3ce5daa2SKaike Wan RSP_INFO_PRN, 702*3ce5daa2SKaike Wan __get_str(dev), 703*3ce5daa2SKaike Wan __entry->qpn, 704*3ce5daa2SKaike Wan __entry->state, 705*3ce5daa2SKaike Wan __entry->s_state, 706*3ce5daa2SKaike Wan __entry->psn, 707*3ce5daa2SKaike Wan __entry->r_psn, 708*3ce5daa2SKaike Wan __entry->r_state, 709*3ce5daa2SKaike Wan __entry->r_flags, 710*3ce5daa2SKaike Wan __entry->r_head_ack_queue, 711*3ce5daa2SKaike Wan __entry->s_tail_ack_queue, 712*3ce5daa2SKaike Wan __entry->s_ack_state, 713*3ce5daa2SKaike Wan __entry->s_nak_state, 714*3ce5daa2SKaike Wan __entry->s_flags, 715*3ce5daa2SKaike Wan __entry->ps_flags, 716*3ce5daa2SKaike Wan __entry->iow_flags 717*3ce5daa2SKaike Wan ) 718*3ce5daa2SKaike Wan ); 719*3ce5daa2SKaike Wan 720*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 721*3ce5daa2SKaike Wan hfi1_responder_info_template, hfi1_rsp_make_rc_ack, 722*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 723*3ce5daa2SKaike Wan TP_ARGS(qp, psn) 724*3ce5daa2SKaike Wan ); 725*3ce5daa2SKaike Wan 726*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 727*3ce5daa2SKaike Wan hfi1_responder_info_template, hfi1_rsp_rcv_tid_read_req, 728*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 729*3ce5daa2SKaike Wan TP_ARGS(qp, psn) 730*3ce5daa2SKaike Wan ); 731*3ce5daa2SKaike Wan 732*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 733*3ce5daa2SKaike Wan hfi1_responder_info_template, hfi1_rsp_tid_rcv_error, 734*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 735*3ce5daa2SKaike Wan TP_ARGS(qp, psn) 736*3ce5daa2SKaike Wan ); 737*3ce5daa2SKaike Wan 738*3ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* sender_info */ 739*3ce5daa2SKaike Wan hfi1_sender_info_template, 740*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 741*3ce5daa2SKaike Wan TP_ARGS(qp), 742*3ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 743*3ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 744*3ce5daa2SKaike Wan __field(u32, qpn) 745*3ce5daa2SKaike Wan __field(u8, state) 746*3ce5daa2SKaike Wan __field(u32, s_cur) 747*3ce5daa2SKaike Wan __field(u32, s_tail) 748*3ce5daa2SKaike Wan __field(u32, s_head) 749*3ce5daa2SKaike Wan __field(u32, s_acked) 750*3ce5daa2SKaike Wan __field(u32, s_last) 751*3ce5daa2SKaike Wan __field(u32, s_psn) 752*3ce5daa2SKaike Wan __field(u32, s_last_psn) 753*3ce5daa2SKaike Wan __field(u32, s_flags) 754*3ce5daa2SKaike Wan __field(u32, ps_flags) 755*3ce5daa2SKaike Wan __field(unsigned long, iow_flags) 756*3ce5daa2SKaike Wan __field(u8, s_state) 757*3ce5daa2SKaike Wan __field(u8, s_num_rd) 758*3ce5daa2SKaike Wan __field(u8, s_retry) 759*3ce5daa2SKaike Wan ), 760*3ce5daa2SKaike Wan TP_fast_assign(/* assign */ 761*3ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)) 762*3ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 763*3ce5daa2SKaike Wan __entry->state = qp->state; 764*3ce5daa2SKaike Wan __entry->s_cur = qp->s_cur; 765*3ce5daa2SKaike Wan __entry->s_tail = qp->s_tail; 766*3ce5daa2SKaike Wan __entry->s_head = qp->s_head; 767*3ce5daa2SKaike Wan __entry->s_acked = qp->s_acked; 768*3ce5daa2SKaike Wan __entry->s_last = qp->s_last; 769*3ce5daa2SKaike Wan __entry->s_psn = qp->s_psn; 770*3ce5daa2SKaike Wan __entry->s_last_psn = qp->s_last_psn; 771*3ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 772*3ce5daa2SKaike Wan __entry->ps_flags = ((struct hfi1_qp_priv *)qp->priv)->s_flags; 773*3ce5daa2SKaike Wan __entry->iow_flags = 774*3ce5daa2SKaike Wan ((struct hfi1_qp_priv *)qp->priv)->s_iowait.flags; 775*3ce5daa2SKaike Wan __entry->s_state = qp->s_state; 776*3ce5daa2SKaike Wan __entry->s_num_rd = qp->s_num_rd_atomic; 777*3ce5daa2SKaike Wan __entry->s_retry = qp->s_retry; 778*3ce5daa2SKaike Wan ), 779*3ce5daa2SKaike Wan TP_printk(/* print */ 780*3ce5daa2SKaike Wan SENDER_INFO_PRN, 781*3ce5daa2SKaike Wan __get_str(dev), 782*3ce5daa2SKaike Wan __entry->qpn, 783*3ce5daa2SKaike Wan __entry->state, 784*3ce5daa2SKaike Wan __entry->s_cur, 785*3ce5daa2SKaike Wan __entry->s_tail, 786*3ce5daa2SKaike Wan __entry->s_head, 787*3ce5daa2SKaike Wan __entry->s_acked, 788*3ce5daa2SKaike Wan __entry->s_last, 789*3ce5daa2SKaike Wan __entry->s_psn, 790*3ce5daa2SKaike Wan __entry->s_last_psn, 791*3ce5daa2SKaike Wan __entry->s_flags, 792*3ce5daa2SKaike Wan __entry->ps_flags, 793*3ce5daa2SKaike Wan __entry->iow_flags, 794*3ce5daa2SKaike Wan __entry->s_state, 795*3ce5daa2SKaike Wan __entry->s_num_rd, 796*3ce5daa2SKaike Wan __entry->s_retry 797*3ce5daa2SKaike Wan ) 798*3ce5daa2SKaike Wan ); 799*3ce5daa2SKaike Wan 800*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 801*3ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_make_rc_req, 802*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 803*3ce5daa2SKaike Wan TP_ARGS(qp) 804*3ce5daa2SKaike Wan ); 805*3ce5daa2SKaike Wan 806*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 807*3ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_reset_psn, 808*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 809*3ce5daa2SKaike Wan TP_ARGS(qp) 810*3ce5daa2SKaike Wan ); 811*3ce5daa2SKaike Wan 812*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 813*3ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_restart_rc, 814*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 815*3ce5daa2SKaike Wan TP_ARGS(qp) 816*3ce5daa2SKaike Wan ); 817*3ce5daa2SKaike Wan 818*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 819*3ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_do_rc_ack, 820*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 821*3ce5daa2SKaike Wan TP_ARGS(qp) 822*3ce5daa2SKaike Wan ); 823*3ce5daa2SKaike Wan 824*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 825*3ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_rcv_tid_read_resp, 826*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 827*3ce5daa2SKaike Wan TP_ARGS(qp) 828*3ce5daa2SKaike Wan ); 829*3ce5daa2SKaike Wan 830*3ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* tid_read_sender */ 831*3ce5daa2SKaike Wan hfi1_tid_read_sender_template, 832*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq), 833*3ce5daa2SKaike Wan TP_ARGS(qp, newreq), 834*3ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 835*3ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 836*3ce5daa2SKaike Wan __field(u32, qpn) 837*3ce5daa2SKaike Wan __field(char, newreq) 838*3ce5daa2SKaike Wan __field(u32, tid_r_reqs) 839*3ce5daa2SKaike Wan __field(u32, tid_r_comp) 840*3ce5daa2SKaike Wan __field(u32, pending_tid_r_segs) 841*3ce5daa2SKaike Wan __field(u32, s_flags) 842*3ce5daa2SKaike Wan __field(u32, ps_flags) 843*3ce5daa2SKaike Wan __field(unsigned long, iow_flags) 844*3ce5daa2SKaike Wan __field(u32, hw_flow_index) 845*3ce5daa2SKaike Wan __field(u32, generation) 846*3ce5daa2SKaike Wan __field(u32, fpsn) 847*3ce5daa2SKaike Wan __field(u32, flow_flags) 848*3ce5daa2SKaike Wan ), 849*3ce5daa2SKaike Wan TP_fast_assign(/* assign */ 850*3ce5daa2SKaike Wan struct hfi1_qp_priv *priv = qp->priv; 851*3ce5daa2SKaike Wan 852*3ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 853*3ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 854*3ce5daa2SKaike Wan __entry->newreq = newreq; 855*3ce5daa2SKaike Wan __entry->tid_r_reqs = priv->tid_r_reqs; 856*3ce5daa2SKaike Wan __entry->tid_r_comp = priv->tid_r_comp; 857*3ce5daa2SKaike Wan __entry->pending_tid_r_segs = priv->pending_tid_r_segs; 858*3ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 859*3ce5daa2SKaike Wan __entry->ps_flags = priv->s_flags; 860*3ce5daa2SKaike Wan __entry->iow_flags = priv->s_iowait.flags; 861*3ce5daa2SKaike Wan __entry->hw_flow_index = priv->flow_state.index; 862*3ce5daa2SKaike Wan __entry->generation = priv->flow_state.generation; 863*3ce5daa2SKaike Wan __entry->fpsn = priv->flow_state.psn; 864*3ce5daa2SKaike Wan __entry->flow_flags = priv->flow_state.flags; 865*3ce5daa2SKaike Wan ), 866*3ce5daa2SKaike Wan TP_printk(/* print */ 867*3ce5daa2SKaike Wan TID_READ_SENDER_PRN, 868*3ce5daa2SKaike Wan __get_str(dev), 869*3ce5daa2SKaike Wan __entry->qpn, 870*3ce5daa2SKaike Wan __entry->newreq, 871*3ce5daa2SKaike Wan __entry->tid_r_reqs, 872*3ce5daa2SKaike Wan __entry->tid_r_comp, 873*3ce5daa2SKaike Wan __entry->pending_tid_r_segs, 874*3ce5daa2SKaike Wan __entry->s_flags, 875*3ce5daa2SKaike Wan __entry->ps_flags, 876*3ce5daa2SKaike Wan __entry->iow_flags, 877*3ce5daa2SKaike Wan __entry->hw_flow_index, 878*3ce5daa2SKaike Wan __entry->generation, 879*3ce5daa2SKaike Wan __entry->fpsn, 880*3ce5daa2SKaike Wan __entry->flow_flags 881*3ce5daa2SKaike Wan ) 882*3ce5daa2SKaike Wan ); 883*3ce5daa2SKaike Wan 884*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 885*3ce5daa2SKaike Wan hfi1_tid_read_sender_template, hfi1_tid_read_sender_make_req, 886*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq), 887*3ce5daa2SKaike Wan TP_ARGS(qp, newreq) 888*3ce5daa2SKaike Wan ); 889*3ce5daa2SKaike Wan 890*3ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* tid_rdma_request */ 891*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, 892*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 893*3ce5daa2SKaike Wan struct tid_rdma_request *req), 894*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req), 895*3ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 896*3ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 897*3ce5daa2SKaike Wan __field(u32, qpn) 898*3ce5daa2SKaike Wan __field(char, newreq) 899*3ce5daa2SKaike Wan __field(u8, opcode) 900*3ce5daa2SKaike Wan __field(u32, psn) 901*3ce5daa2SKaike Wan __field(u32, lpsn) 902*3ce5daa2SKaike Wan __field(u32, cur_seg) 903*3ce5daa2SKaike Wan __field(u32, comp_seg) 904*3ce5daa2SKaike Wan __field(u32, ack_seg) 905*3ce5daa2SKaike Wan __field(u32, total_segs) 906*3ce5daa2SKaike Wan __field(u16, setup_head) 907*3ce5daa2SKaike Wan __field(u16, clear_tail) 908*3ce5daa2SKaike Wan __field(u16, flow_idx) 909*3ce5daa2SKaike Wan __field(u32, state) 910*3ce5daa2SKaike Wan __field(u32, r_flow_psn) 911*3ce5daa2SKaike Wan __field(u32, s_next_psn) 912*3ce5daa2SKaike Wan ), 913*3ce5daa2SKaike Wan TP_fast_assign(/* assign */ 914*3ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 915*3ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 916*3ce5daa2SKaike Wan __entry->newreq = newreq; 917*3ce5daa2SKaike Wan __entry->opcode = opcode; 918*3ce5daa2SKaike Wan __entry->psn = psn; 919*3ce5daa2SKaike Wan __entry->lpsn = lpsn; 920*3ce5daa2SKaike Wan __entry->cur_seg = req->cur_seg; 921*3ce5daa2SKaike Wan __entry->comp_seg = req->comp_seg; 922*3ce5daa2SKaike Wan __entry->ack_seg = req->ack_seg; 923*3ce5daa2SKaike Wan __entry->total_segs = req->total_segs; 924*3ce5daa2SKaike Wan __entry->setup_head = req->setup_head; 925*3ce5daa2SKaike Wan __entry->clear_tail = req->clear_tail; 926*3ce5daa2SKaike Wan __entry->flow_idx = req->flow_idx; 927*3ce5daa2SKaike Wan __entry->state = req->state; 928*3ce5daa2SKaike Wan __entry->r_flow_psn = req->r_flow_psn; 929*3ce5daa2SKaike Wan __entry->s_next_psn = req->s_next_psn; 930*3ce5daa2SKaike Wan ), 931*3ce5daa2SKaike Wan TP_printk(/* print */ 932*3ce5daa2SKaike Wan TID_REQ_PRN, 933*3ce5daa2SKaike Wan __get_str(dev), 934*3ce5daa2SKaike Wan __entry->qpn, 935*3ce5daa2SKaike Wan __entry->newreq, 936*3ce5daa2SKaike Wan __entry->opcode, 937*3ce5daa2SKaike Wan __entry->psn, 938*3ce5daa2SKaike Wan __entry->lpsn, 939*3ce5daa2SKaike Wan __entry->cur_seg, 940*3ce5daa2SKaike Wan __entry->comp_seg, 941*3ce5daa2SKaike Wan __entry->ack_seg, 942*3ce5daa2SKaike Wan __entry->total_segs, 943*3ce5daa2SKaike Wan __entry->setup_head, 944*3ce5daa2SKaike Wan __entry->clear_tail, 945*3ce5daa2SKaike Wan __entry->flow_idx, 946*3ce5daa2SKaike Wan __entry->state, 947*3ce5daa2SKaike Wan __entry->r_flow_psn, 948*3ce5daa2SKaike Wan __entry->s_next_psn 949*3ce5daa2SKaike Wan ) 950*3ce5daa2SKaike Wan ); 951*3ce5daa2SKaike Wan 952*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 953*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_make_req_read, 954*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 955*3ce5daa2SKaike Wan struct tid_rdma_request *req), 956*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 957*3ce5daa2SKaike Wan ); 958*3ce5daa2SKaike Wan 959*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 960*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_build_read_req, 961*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 962*3ce5daa2SKaike Wan struct tid_rdma_request *req), 963*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 964*3ce5daa2SKaike Wan ); 965*3ce5daa2SKaike Wan 966*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 967*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_req, 968*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 969*3ce5daa2SKaike Wan struct tid_rdma_request *req), 970*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 971*3ce5daa2SKaike Wan ); 972*3ce5daa2SKaike Wan 973*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 974*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_resp, 975*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 976*3ce5daa2SKaike Wan struct tid_rdma_request *req), 977*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 978*3ce5daa2SKaike Wan ); 979*3ce5daa2SKaike Wan 980*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 981*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_err, 982*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 983*3ce5daa2SKaike Wan struct tid_rdma_request *req), 984*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 985*3ce5daa2SKaike Wan ); 986*3ce5daa2SKaike Wan 987*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 988*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_restart_req, 989*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 990*3ce5daa2SKaike Wan struct tid_rdma_request *req), 991*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 992*3ce5daa2SKaike Wan ); 993*3ce5daa2SKaike Wan 994*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 995*3ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_setup_tid_wqe, 996*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 997*3ce5daa2SKaike Wan struct tid_rdma_request *req), 998*3ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 999*3ce5daa2SKaike Wan ); 1000*3ce5daa2SKaike Wan 1001*3ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* rc_rcv_err */ 1002*3ce5daa2SKaike Wan hfi1_rc_rcv_err_template, 1003*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff), 1004*3ce5daa2SKaike Wan TP_ARGS(qp, opcode, psn, diff), 1005*3ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 1006*3ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 1007*3ce5daa2SKaike Wan __field(u32, qpn) 1008*3ce5daa2SKaike Wan __field(u32, s_flags) 1009*3ce5daa2SKaike Wan __field(u8, state) 1010*3ce5daa2SKaike Wan __field(u8, s_tail_ack_queue) 1011*3ce5daa2SKaike Wan __field(u8, r_head_ack_queue) 1012*3ce5daa2SKaike Wan __field(u32, opcode) 1013*3ce5daa2SKaike Wan __field(u32, psn) 1014*3ce5daa2SKaike Wan __field(u32, r_psn) 1015*3ce5daa2SKaike Wan __field(int, diff) 1016*3ce5daa2SKaike Wan ), 1017*3ce5daa2SKaike Wan TP_fast_assign(/* assign */ 1018*3ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)) 1019*3ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 1020*3ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 1021*3ce5daa2SKaike Wan __entry->state = qp->state; 1022*3ce5daa2SKaike Wan __entry->s_tail_ack_queue = qp->s_tail_ack_queue; 1023*3ce5daa2SKaike Wan __entry->r_head_ack_queue = qp->r_head_ack_queue; 1024*3ce5daa2SKaike Wan __entry->opcode = opcode; 1025*3ce5daa2SKaike Wan __entry->psn = psn; 1026*3ce5daa2SKaike Wan __entry->r_psn = qp->r_psn; 1027*3ce5daa2SKaike Wan __entry->diff = diff; 1028*3ce5daa2SKaike Wan ), 1029*3ce5daa2SKaike Wan TP_printk(/* print */ 1030*3ce5daa2SKaike Wan RCV_ERR_PRN, 1031*3ce5daa2SKaike Wan __get_str(dev), 1032*3ce5daa2SKaike Wan __entry->qpn, 1033*3ce5daa2SKaike Wan __entry->s_flags, 1034*3ce5daa2SKaike Wan __entry->state, 1035*3ce5daa2SKaike Wan __entry->s_tail_ack_queue, 1036*3ce5daa2SKaike Wan __entry->r_head_ack_queue, 1037*3ce5daa2SKaike Wan __entry->opcode, 1038*3ce5daa2SKaike Wan __entry->psn, 1039*3ce5daa2SKaike Wan __entry->r_psn, 1040*3ce5daa2SKaike Wan __entry->diff 1041*3ce5daa2SKaike Wan ) 1042*3ce5daa2SKaike Wan ); 1043*3ce5daa2SKaike Wan 1044*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 1045*3ce5daa2SKaike Wan hfi1_rc_rcv_err_template, hfi1_tid_rdma_rcv_err, 1046*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff), 1047*3ce5daa2SKaike Wan TP_ARGS(qp, opcode, psn, diff) 1048*3ce5daa2SKaike Wan ); 1049*3ce5daa2SKaike Wan 1050*3ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* sge */ 1051*3ce5daa2SKaike Wan hfi1_sge_template, 1052*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge), 1053*3ce5daa2SKaike Wan TP_ARGS(qp, index, sge), 1054*3ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 1055*3ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 1056*3ce5daa2SKaike Wan __field(u32, qpn) 1057*3ce5daa2SKaike Wan __field(int, index) 1058*3ce5daa2SKaike Wan __field(u64, vaddr) 1059*3ce5daa2SKaike Wan __field(u32, sge_length) 1060*3ce5daa2SKaike Wan ), 1061*3ce5daa2SKaike Wan TP_fast_assign(/* assign */ 1062*3ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 1063*3ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 1064*3ce5daa2SKaike Wan __entry->index = index; 1065*3ce5daa2SKaike Wan __entry->vaddr = (u64)sge->vaddr; 1066*3ce5daa2SKaike Wan __entry->sge_length = sge->sge_length; 1067*3ce5daa2SKaike Wan ), 1068*3ce5daa2SKaike Wan TP_printk(/* print */ 1069*3ce5daa2SKaike Wan "[%s] qpn 0x%x sge %d: vaddr 0x%llx sge_length %u", 1070*3ce5daa2SKaike Wan __get_str(dev), 1071*3ce5daa2SKaike Wan __entry->qpn, 1072*3ce5daa2SKaike Wan __entry->index, 1073*3ce5daa2SKaike Wan __entry->vaddr, 1074*3ce5daa2SKaike Wan __entry->sge_length 1075*3ce5daa2SKaike Wan ) 1076*3ce5daa2SKaike Wan ); 1077*3ce5daa2SKaike Wan 1078*3ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 1079*3ce5daa2SKaike Wan hfi1_sge_template, hfi1_sge_check_align, 1080*3ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge), 1081*3ce5daa2SKaike Wan TP_ARGS(qp, index, sge) 1082*3ce5daa2SKaike Wan ); 1083*3ce5daa2SKaike Wan 1084a131d164SKaike Wan #endif /* __HFI1_TRACE_TID_H */ 1085a131d164SKaike Wan 1086a131d164SKaike Wan #undef TRACE_INCLUDE_PATH 1087a131d164SKaike Wan #undef TRACE_INCLUDE_FILE 1088a131d164SKaike Wan #define TRACE_INCLUDE_PATH . 1089a131d164SKaike Wan #define TRACE_INCLUDE_FILE trace_tid 1090a131d164SKaike Wan #include <trace/define_trace.h> 1091