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 " \ 343ce5daa2SKaike Wan "ib_psn 0x%x-%x npagesets %u tnode_cnt %u " \ 353ce5daa2SKaike 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 403ce5daa2SKaike Wan #define RSP_INFO_PRN "[%s] qpn 0x%x state 0x%x s_state 0x%x psn 0x%x " \ 413ce5daa2SKaike Wan "r_psn 0x%x r_state 0x%x r_flags 0x%x " \ 423ce5daa2SKaike Wan "r_head_ack_queue %u s_tail_ack_queue %u " \ 434f9264d1SKaike Wan "s_acked_ack_queue %u s_ack_state 0x%x " \ 443ce5daa2SKaike Wan "s_nak_state 0x%x s_flags 0x%x ps_flags 0x%x " \ 453ce5daa2SKaike Wan "iow_flags 0x%lx" 463ce5daa2SKaike Wan 473ce5daa2SKaike Wan #define SENDER_INFO_PRN "[%s] qpn 0x%x state 0x%x s_cur %u s_tail %u " \ 483ce5daa2SKaike Wan "s_head %u s_acked %u s_last %u s_psn 0x%x " \ 493ce5daa2SKaike Wan "s_last_psn 0x%x s_flags 0x%x ps_flags 0x%x " \ 503ce5daa2SKaike Wan "iow_flags 0x%lx s_state 0x%x s_num_rd %u s_retry %u" 513ce5daa2SKaike Wan 523ce5daa2SKaike Wan #define TID_READ_SENDER_PRN "[%s] qpn 0x%x newreq %u tid_r_reqs %u " \ 533ce5daa2SKaike Wan "tid_r_comp %u pending_tid_r_segs %u " \ 543ce5daa2SKaike Wan "s_flags 0x%x ps_flags 0x%x iow_flags 0x%lx " \ 55*9e93e967SKaike Wan "s_state 0x%x hw_flow_index %u generation 0x%x " \ 563ce5daa2SKaike Wan "fpsn 0x%x flow_flags 0x%x" 573ce5daa2SKaike Wan 583ce5daa2SKaike Wan #define TID_REQ_PRN "[%s] qpn 0x%x newreq %u opcode 0x%x psn 0x%x lpsn 0x%x " \ 593ce5daa2SKaike Wan "cur_seg %u comp_seg %u ack_seg %u " \ 603ce5daa2SKaike Wan "total_segs %u setup_head %u clear_tail %u flow_idx %u " \ 613ce5daa2SKaike Wan "state %u r_flow_psn 0x%x " \ 623ce5daa2SKaike Wan "s_next_psn 0x%x" 633ce5daa2SKaike Wan 643ce5daa2SKaike Wan #define RCV_ERR_PRN "[%s] qpn 0x%x s_flags 0x%x state 0x%x " \ 654f9264d1SKaike Wan "s_acked_ack_queue %u s_tail_ack_queue %u " \ 663ce5daa2SKaike Wan "r_head_ack_queue %u opcode 0x%x psn 0x%x r_psn 0x%x " \ 673ce5daa2SKaike Wan " diff %d" 683ce5daa2SKaike 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 3733ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 3743ce5daa2SKaike Wan hfi1_msg_template, hfi1_msg_tid_restart_req, 3753ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 3763ce5daa2SKaike Wan TP_ARGS(qp, msg, more) 3773ce5daa2SKaike Wan ); 3783ce5daa2SKaike Wan 3793ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 3803ce5daa2SKaike Wan hfi1_msg_template, hfi1_msg_handle_kdeth_eflags, 3813ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, const char *msg, u64 more), 3823ce5daa2SKaike Wan TP_ARGS(qp, msg, more) 3833ce5daa2SKaike Wan ); 3843ce5daa2SKaike 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) 4743ce5daa2SKaike Wan __field(u32, ib_spsn) 4753ce5daa2SKaike Wan __field(u32, ib_lpsn) 47684f4a40dSKaike Wan __field(u32, npagesets) 47784f4a40dSKaike Wan __field(u32, tnode_cnt) 47884f4a40dSKaike Wan __field(u32, tidcnt) 4793ce5daa2SKaike Wan __field(u32, tid_idx) 4803ce5daa2SKaike Wan __field(u32, tid_offset) 48184f4a40dSKaike Wan __field(u32, length) 4823ce5daa2SKaike 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; 4963ce5daa2SKaike Wan __entry->ib_spsn = flow->flow_state.ib_spsn; 4973ce5daa2SKaike 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; 5013ce5daa2SKaike Wan __entry->tid_idx = flow->tid_idx; 5023ce5daa2SKaike Wan __entry->tid_offset = flow->tid_offset; 50384f4a40dSKaike Wan __entry->length = flow->length; 5043ce5daa2SKaike 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, 5173ce5daa2SKaike Wan __entry->ib_spsn, 5183ce5daa2SKaike Wan __entry->ib_lpsn, 51984f4a40dSKaike Wan __entry->npagesets, 52084f4a40dSKaike Wan __entry->tnode_cnt, 52184f4a40dSKaike Wan __entry->tidcnt, 5223ce5daa2SKaike Wan __entry->tid_idx, 5233ce5daa2SKaike Wan __entry->tid_offset, 5243ce5daa2SKaike Wan __entry->length, 5253ce5daa2SKaike 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 5353ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 5363ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_build_read_pkt, 5373ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 5383ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 5393ce5daa2SKaike Wan ); 5403ce5daa2SKaike Wan 5413ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 5423ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_build_read_resp, 5433ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 5443ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 5453ce5daa2SKaike Wan ); 5463ce5daa2SKaike Wan 5473ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 5483ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_req, 5493ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 5503ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 5513ce5daa2SKaike Wan ); 5523ce5daa2SKaike Wan 5533ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 5543ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_rcv_read_resp, 5553ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 5563ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 5573ce5daa2SKaike Wan ); 5583ce5daa2SKaike Wan 5593ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 5603ce5daa2SKaike Wan hfi1_tid_flow_template, hfi1_tid_flow_restart_req, 5613ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct tid_rdma_flow *flow), 5623ce5daa2SKaike Wan TP_ARGS(qp, index, flow) 5633ce5daa2SKaike Wan ); 5643ce5daa2SKaike 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 6473ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 6483ce5daa2SKaike Wan hfi1_tid_entry_template, hfi1_tid_entry_build_read_resp, 6493ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, u32 ent), 6503ce5daa2SKaike Wan TP_ARGS(qp, index, ent) 6513ce5daa2SKaike Wan ); 6523ce5daa2SKaike Wan 6533ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 6543ce5daa2SKaike Wan hfi1_tid_entry_template, hfi1_tid_entry_rcv_read_req, 6553ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, u32 ent), 6563ce5daa2SKaike Wan TP_ARGS(qp, index, ent) 6573ce5daa2SKaike Wan ); 6583ce5daa2SKaike Wan 6593ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* rsp_info */ 6603ce5daa2SKaike Wan hfi1_responder_info_template, 6613ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 6623ce5daa2SKaike Wan TP_ARGS(qp, psn), 6633ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 6643ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 6653ce5daa2SKaike Wan __field(u32, qpn) 6663ce5daa2SKaike Wan __field(u8, state) 6673ce5daa2SKaike Wan __field(u8, s_state) 6683ce5daa2SKaike Wan __field(u32, psn) 6693ce5daa2SKaike Wan __field(u32, r_psn) 6703ce5daa2SKaike Wan __field(u8, r_state) 6713ce5daa2SKaike Wan __field(u8, r_flags) 6723ce5daa2SKaike Wan __field(u8, r_head_ack_queue) 6733ce5daa2SKaike Wan __field(u8, s_tail_ack_queue) 6744f9264d1SKaike Wan __field(u8, s_acked_ack_queue) 6753ce5daa2SKaike Wan __field(u8, s_ack_state) 6763ce5daa2SKaike Wan __field(u8, s_nak_state) 6773ce5daa2SKaike Wan __field(u8, r_nak_state) 6783ce5daa2SKaike Wan __field(u32, s_flags) 6793ce5daa2SKaike Wan __field(u32, ps_flags) 6803ce5daa2SKaike Wan __field(unsigned long, iow_flags) 6813ce5daa2SKaike Wan ), 6823ce5daa2SKaike Wan TP_fast_assign(/* assign */ 6833ce5daa2SKaike Wan struct hfi1_qp_priv *priv = qp->priv; 6843ce5daa2SKaike Wan 6853ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 6863ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 6873ce5daa2SKaike Wan __entry->state = qp->state; 6883ce5daa2SKaike Wan __entry->s_state = qp->s_state; 6893ce5daa2SKaike Wan __entry->psn = psn; 6903ce5daa2SKaike Wan __entry->r_psn = qp->r_psn; 6913ce5daa2SKaike Wan __entry->r_state = qp->r_state; 6923ce5daa2SKaike Wan __entry->r_flags = qp->r_flags; 6933ce5daa2SKaike Wan __entry->r_head_ack_queue = qp->r_head_ack_queue; 6943ce5daa2SKaike Wan __entry->s_tail_ack_queue = qp->s_tail_ack_queue; 6954f9264d1SKaike Wan __entry->s_acked_ack_queue = qp->s_acked_ack_queue; 6963ce5daa2SKaike Wan __entry->s_ack_state = qp->s_ack_state; 6973ce5daa2SKaike Wan __entry->s_nak_state = qp->s_nak_state; 6983ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 6993ce5daa2SKaike Wan __entry->ps_flags = priv->s_flags; 7003ce5daa2SKaike Wan __entry->iow_flags = priv->s_iowait.flags; 7013ce5daa2SKaike Wan ), 7023ce5daa2SKaike Wan TP_printk(/* print */ 7033ce5daa2SKaike Wan RSP_INFO_PRN, 7043ce5daa2SKaike Wan __get_str(dev), 7053ce5daa2SKaike Wan __entry->qpn, 7063ce5daa2SKaike Wan __entry->state, 7073ce5daa2SKaike Wan __entry->s_state, 7083ce5daa2SKaike Wan __entry->psn, 7093ce5daa2SKaike Wan __entry->r_psn, 7103ce5daa2SKaike Wan __entry->r_state, 7113ce5daa2SKaike Wan __entry->r_flags, 7123ce5daa2SKaike Wan __entry->r_head_ack_queue, 7133ce5daa2SKaike Wan __entry->s_tail_ack_queue, 7144f9264d1SKaike Wan __entry->s_acked_ack_queue, 7153ce5daa2SKaike Wan __entry->s_ack_state, 7163ce5daa2SKaike Wan __entry->s_nak_state, 7173ce5daa2SKaike Wan __entry->s_flags, 7183ce5daa2SKaike Wan __entry->ps_flags, 7193ce5daa2SKaike Wan __entry->iow_flags 7203ce5daa2SKaike Wan ) 7213ce5daa2SKaike Wan ); 7223ce5daa2SKaike Wan 7233ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 7243ce5daa2SKaike Wan hfi1_responder_info_template, hfi1_rsp_make_rc_ack, 7253ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 7263ce5daa2SKaike Wan TP_ARGS(qp, psn) 7273ce5daa2SKaike Wan ); 7283ce5daa2SKaike Wan 7293ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 7303ce5daa2SKaike Wan hfi1_responder_info_template, hfi1_rsp_rcv_tid_read_req, 7313ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 7323ce5daa2SKaike Wan TP_ARGS(qp, psn) 7333ce5daa2SKaike Wan ); 7343ce5daa2SKaike Wan 7353ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 7363ce5daa2SKaike Wan hfi1_responder_info_template, hfi1_rsp_tid_rcv_error, 7373ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 psn), 7383ce5daa2SKaike Wan TP_ARGS(qp, psn) 7393ce5daa2SKaike Wan ); 7403ce5daa2SKaike Wan 7413ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* sender_info */ 7423ce5daa2SKaike Wan hfi1_sender_info_template, 7433ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 7443ce5daa2SKaike Wan TP_ARGS(qp), 7453ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 7463ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 7473ce5daa2SKaike Wan __field(u32, qpn) 7483ce5daa2SKaike Wan __field(u8, state) 7493ce5daa2SKaike Wan __field(u32, s_cur) 7503ce5daa2SKaike Wan __field(u32, s_tail) 7513ce5daa2SKaike Wan __field(u32, s_head) 7523ce5daa2SKaike Wan __field(u32, s_acked) 7533ce5daa2SKaike Wan __field(u32, s_last) 7543ce5daa2SKaike Wan __field(u32, s_psn) 7553ce5daa2SKaike Wan __field(u32, s_last_psn) 7563ce5daa2SKaike Wan __field(u32, s_flags) 7573ce5daa2SKaike Wan __field(u32, ps_flags) 7583ce5daa2SKaike Wan __field(unsigned long, iow_flags) 7593ce5daa2SKaike Wan __field(u8, s_state) 7603ce5daa2SKaike Wan __field(u8, s_num_rd) 7613ce5daa2SKaike Wan __field(u8, s_retry) 7623ce5daa2SKaike Wan ), 7633ce5daa2SKaike Wan TP_fast_assign(/* assign */ 7643ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)) 7653ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 7663ce5daa2SKaike Wan __entry->state = qp->state; 7673ce5daa2SKaike Wan __entry->s_cur = qp->s_cur; 7683ce5daa2SKaike Wan __entry->s_tail = qp->s_tail; 7693ce5daa2SKaike Wan __entry->s_head = qp->s_head; 7703ce5daa2SKaike Wan __entry->s_acked = qp->s_acked; 7713ce5daa2SKaike Wan __entry->s_last = qp->s_last; 7723ce5daa2SKaike Wan __entry->s_psn = qp->s_psn; 7733ce5daa2SKaike Wan __entry->s_last_psn = qp->s_last_psn; 7743ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 7753ce5daa2SKaike Wan __entry->ps_flags = ((struct hfi1_qp_priv *)qp->priv)->s_flags; 7763ce5daa2SKaike Wan __entry->iow_flags = 7773ce5daa2SKaike Wan ((struct hfi1_qp_priv *)qp->priv)->s_iowait.flags; 7783ce5daa2SKaike Wan __entry->s_state = qp->s_state; 7793ce5daa2SKaike Wan __entry->s_num_rd = qp->s_num_rd_atomic; 7803ce5daa2SKaike Wan __entry->s_retry = qp->s_retry; 7813ce5daa2SKaike Wan ), 7823ce5daa2SKaike Wan TP_printk(/* print */ 7833ce5daa2SKaike Wan SENDER_INFO_PRN, 7843ce5daa2SKaike Wan __get_str(dev), 7853ce5daa2SKaike Wan __entry->qpn, 7863ce5daa2SKaike Wan __entry->state, 7873ce5daa2SKaike Wan __entry->s_cur, 7883ce5daa2SKaike Wan __entry->s_tail, 7893ce5daa2SKaike Wan __entry->s_head, 7903ce5daa2SKaike Wan __entry->s_acked, 7913ce5daa2SKaike Wan __entry->s_last, 7923ce5daa2SKaike Wan __entry->s_psn, 7933ce5daa2SKaike Wan __entry->s_last_psn, 7943ce5daa2SKaike Wan __entry->s_flags, 7953ce5daa2SKaike Wan __entry->ps_flags, 7963ce5daa2SKaike Wan __entry->iow_flags, 7973ce5daa2SKaike Wan __entry->s_state, 7983ce5daa2SKaike Wan __entry->s_num_rd, 7993ce5daa2SKaike Wan __entry->s_retry 8003ce5daa2SKaike Wan ) 8013ce5daa2SKaike Wan ); 8023ce5daa2SKaike Wan 8033ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 8043ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_make_rc_req, 8053ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 8063ce5daa2SKaike Wan TP_ARGS(qp) 8073ce5daa2SKaike Wan ); 8083ce5daa2SKaike Wan 8093ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 8103ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_reset_psn, 8113ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 8123ce5daa2SKaike Wan TP_ARGS(qp) 8133ce5daa2SKaike Wan ); 8143ce5daa2SKaike Wan 8153ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 8163ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_restart_rc, 8173ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 8183ce5daa2SKaike Wan TP_ARGS(qp) 8193ce5daa2SKaike Wan ); 8203ce5daa2SKaike Wan 8213ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 8223ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_do_rc_ack, 8233ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 8243ce5daa2SKaike Wan TP_ARGS(qp) 8253ce5daa2SKaike Wan ); 8263ce5daa2SKaike Wan 8273ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 8283ce5daa2SKaike Wan hfi1_sender_info_template, hfi1_sender_rcv_tid_read_resp, 8293ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp), 8303ce5daa2SKaike Wan TP_ARGS(qp) 8313ce5daa2SKaike Wan ); 8323ce5daa2SKaike Wan 8333ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* tid_read_sender */ 8343ce5daa2SKaike Wan hfi1_tid_read_sender_template, 8353ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq), 8363ce5daa2SKaike Wan TP_ARGS(qp, newreq), 8373ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 8383ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 8393ce5daa2SKaike Wan __field(u32, qpn) 8403ce5daa2SKaike Wan __field(char, newreq) 8413ce5daa2SKaike Wan __field(u32, tid_r_reqs) 8423ce5daa2SKaike Wan __field(u32, tid_r_comp) 8433ce5daa2SKaike Wan __field(u32, pending_tid_r_segs) 8443ce5daa2SKaike Wan __field(u32, s_flags) 8453ce5daa2SKaike Wan __field(u32, ps_flags) 8463ce5daa2SKaike Wan __field(unsigned long, iow_flags) 847*9e93e967SKaike Wan __field(u8, s_state) 8483ce5daa2SKaike Wan __field(u32, hw_flow_index) 8493ce5daa2SKaike Wan __field(u32, generation) 8503ce5daa2SKaike Wan __field(u32, fpsn) 8513ce5daa2SKaike Wan __field(u32, flow_flags) 8523ce5daa2SKaike Wan ), 8533ce5daa2SKaike Wan TP_fast_assign(/* assign */ 8543ce5daa2SKaike Wan struct hfi1_qp_priv *priv = qp->priv; 8553ce5daa2SKaike Wan 8563ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 8573ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 8583ce5daa2SKaike Wan __entry->newreq = newreq; 8593ce5daa2SKaike Wan __entry->tid_r_reqs = priv->tid_r_reqs; 8603ce5daa2SKaike Wan __entry->tid_r_comp = priv->tid_r_comp; 8613ce5daa2SKaike Wan __entry->pending_tid_r_segs = priv->pending_tid_r_segs; 8623ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 8633ce5daa2SKaike Wan __entry->ps_flags = priv->s_flags; 8643ce5daa2SKaike Wan __entry->iow_flags = priv->s_iowait.flags; 865*9e93e967SKaike Wan __entry->s_state = priv->s_state; 8663ce5daa2SKaike Wan __entry->hw_flow_index = priv->flow_state.index; 8673ce5daa2SKaike Wan __entry->generation = priv->flow_state.generation; 8683ce5daa2SKaike Wan __entry->fpsn = priv->flow_state.psn; 8693ce5daa2SKaike Wan __entry->flow_flags = priv->flow_state.flags; 8703ce5daa2SKaike Wan ), 8713ce5daa2SKaike Wan TP_printk(/* print */ 8723ce5daa2SKaike Wan TID_READ_SENDER_PRN, 8733ce5daa2SKaike Wan __get_str(dev), 8743ce5daa2SKaike Wan __entry->qpn, 8753ce5daa2SKaike Wan __entry->newreq, 8763ce5daa2SKaike Wan __entry->tid_r_reqs, 8773ce5daa2SKaike Wan __entry->tid_r_comp, 8783ce5daa2SKaike Wan __entry->pending_tid_r_segs, 8793ce5daa2SKaike Wan __entry->s_flags, 8803ce5daa2SKaike Wan __entry->ps_flags, 8813ce5daa2SKaike Wan __entry->iow_flags, 882*9e93e967SKaike Wan __entry->s_state, 8833ce5daa2SKaike Wan __entry->hw_flow_index, 8843ce5daa2SKaike Wan __entry->generation, 8853ce5daa2SKaike Wan __entry->fpsn, 8863ce5daa2SKaike Wan __entry->flow_flags 8873ce5daa2SKaike Wan ) 8883ce5daa2SKaike Wan ); 8893ce5daa2SKaike Wan 8903ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 8913ce5daa2SKaike Wan hfi1_tid_read_sender_template, hfi1_tid_read_sender_make_req, 8923ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq), 8933ce5daa2SKaike Wan TP_ARGS(qp, newreq) 8943ce5daa2SKaike Wan ); 8953ce5daa2SKaike Wan 8963ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* tid_rdma_request */ 8973ce5daa2SKaike Wan hfi1_tid_rdma_request_template, 8983ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 8993ce5daa2SKaike Wan struct tid_rdma_request *req), 9003ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req), 9013ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 9023ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 9033ce5daa2SKaike Wan __field(u32, qpn) 9043ce5daa2SKaike Wan __field(char, newreq) 9053ce5daa2SKaike Wan __field(u8, opcode) 9063ce5daa2SKaike Wan __field(u32, psn) 9073ce5daa2SKaike Wan __field(u32, lpsn) 9083ce5daa2SKaike Wan __field(u32, cur_seg) 9093ce5daa2SKaike Wan __field(u32, comp_seg) 9103ce5daa2SKaike Wan __field(u32, ack_seg) 9113ce5daa2SKaike Wan __field(u32, total_segs) 9123ce5daa2SKaike Wan __field(u16, setup_head) 9133ce5daa2SKaike Wan __field(u16, clear_tail) 9143ce5daa2SKaike Wan __field(u16, flow_idx) 9153ce5daa2SKaike Wan __field(u32, state) 9163ce5daa2SKaike Wan __field(u32, r_flow_psn) 9173ce5daa2SKaike Wan __field(u32, s_next_psn) 9183ce5daa2SKaike Wan ), 9193ce5daa2SKaike Wan TP_fast_assign(/* assign */ 9203ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 9213ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 9223ce5daa2SKaike Wan __entry->newreq = newreq; 9233ce5daa2SKaike Wan __entry->opcode = opcode; 9243ce5daa2SKaike Wan __entry->psn = psn; 9253ce5daa2SKaike Wan __entry->lpsn = lpsn; 9263ce5daa2SKaike Wan __entry->cur_seg = req->cur_seg; 9273ce5daa2SKaike Wan __entry->comp_seg = req->comp_seg; 9283ce5daa2SKaike Wan __entry->ack_seg = req->ack_seg; 9293ce5daa2SKaike Wan __entry->total_segs = req->total_segs; 9303ce5daa2SKaike Wan __entry->setup_head = req->setup_head; 9313ce5daa2SKaike Wan __entry->clear_tail = req->clear_tail; 9323ce5daa2SKaike Wan __entry->flow_idx = req->flow_idx; 9333ce5daa2SKaike Wan __entry->state = req->state; 9343ce5daa2SKaike Wan __entry->r_flow_psn = req->r_flow_psn; 9353ce5daa2SKaike Wan __entry->s_next_psn = req->s_next_psn; 9363ce5daa2SKaike Wan ), 9373ce5daa2SKaike Wan TP_printk(/* print */ 9383ce5daa2SKaike Wan TID_REQ_PRN, 9393ce5daa2SKaike Wan __get_str(dev), 9403ce5daa2SKaike Wan __entry->qpn, 9413ce5daa2SKaike Wan __entry->newreq, 9423ce5daa2SKaike Wan __entry->opcode, 9433ce5daa2SKaike Wan __entry->psn, 9443ce5daa2SKaike Wan __entry->lpsn, 9453ce5daa2SKaike Wan __entry->cur_seg, 9463ce5daa2SKaike Wan __entry->comp_seg, 9473ce5daa2SKaike Wan __entry->ack_seg, 9483ce5daa2SKaike Wan __entry->total_segs, 9493ce5daa2SKaike Wan __entry->setup_head, 9503ce5daa2SKaike Wan __entry->clear_tail, 9513ce5daa2SKaike Wan __entry->flow_idx, 9523ce5daa2SKaike Wan __entry->state, 9533ce5daa2SKaike Wan __entry->r_flow_psn, 9543ce5daa2SKaike Wan __entry->s_next_psn 9553ce5daa2SKaike Wan ) 9563ce5daa2SKaike Wan ); 9573ce5daa2SKaike Wan 9583ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 9593ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_make_req_read, 9603ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 9613ce5daa2SKaike Wan struct tid_rdma_request *req), 9623ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 9633ce5daa2SKaike Wan ); 9643ce5daa2SKaike Wan 9653ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 9663ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_build_read_req, 9673ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 9683ce5daa2SKaike Wan struct tid_rdma_request *req), 9693ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 9703ce5daa2SKaike Wan ); 9713ce5daa2SKaike Wan 9723ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 9733ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_req, 9743ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 9753ce5daa2SKaike Wan struct tid_rdma_request *req), 9763ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 9773ce5daa2SKaike Wan ); 9783ce5daa2SKaike Wan 9793ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 9803ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_read_resp, 9813ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 9823ce5daa2SKaike Wan struct tid_rdma_request *req), 9833ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 9843ce5daa2SKaike Wan ); 9853ce5daa2SKaike Wan 9863ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 9873ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_rcv_err, 9883ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 9893ce5daa2SKaike Wan struct tid_rdma_request *req), 9903ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 9913ce5daa2SKaike Wan ); 9923ce5daa2SKaike Wan 9933ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 9943ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_restart_req, 9953ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 9963ce5daa2SKaike Wan struct tid_rdma_request *req), 9973ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 9983ce5daa2SKaike Wan ); 9993ce5daa2SKaike Wan 10003ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 10013ce5daa2SKaike Wan hfi1_tid_rdma_request_template, hfi1_tid_req_setup_tid_wqe, 10023ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, char newreq, u8 opcode, u32 psn, u32 lpsn, 10033ce5daa2SKaike Wan struct tid_rdma_request *req), 10043ce5daa2SKaike Wan TP_ARGS(qp, newreq, opcode, psn, lpsn, req) 10053ce5daa2SKaike Wan ); 10063ce5daa2SKaike Wan 10073ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* rc_rcv_err */ 10083ce5daa2SKaike Wan hfi1_rc_rcv_err_template, 10093ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff), 10103ce5daa2SKaike Wan TP_ARGS(qp, opcode, psn, diff), 10113ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 10123ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 10133ce5daa2SKaike Wan __field(u32, qpn) 10143ce5daa2SKaike Wan __field(u32, s_flags) 10153ce5daa2SKaike Wan __field(u8, state) 10164f9264d1SKaike Wan __field(u8, s_acked_ack_queue) 10173ce5daa2SKaike Wan __field(u8, s_tail_ack_queue) 10183ce5daa2SKaike Wan __field(u8, r_head_ack_queue) 10193ce5daa2SKaike Wan __field(u32, opcode) 10203ce5daa2SKaike Wan __field(u32, psn) 10213ce5daa2SKaike Wan __field(u32, r_psn) 10223ce5daa2SKaike Wan __field(int, diff) 10233ce5daa2SKaike Wan ), 10243ce5daa2SKaike Wan TP_fast_assign(/* assign */ 10253ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)) 10263ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 10273ce5daa2SKaike Wan __entry->s_flags = qp->s_flags; 10283ce5daa2SKaike Wan __entry->state = qp->state; 10294f9264d1SKaike Wan __entry->s_acked_ack_queue = qp->s_acked_ack_queue; 10303ce5daa2SKaike Wan __entry->s_tail_ack_queue = qp->s_tail_ack_queue; 10313ce5daa2SKaike Wan __entry->r_head_ack_queue = qp->r_head_ack_queue; 10323ce5daa2SKaike Wan __entry->opcode = opcode; 10333ce5daa2SKaike Wan __entry->psn = psn; 10343ce5daa2SKaike Wan __entry->r_psn = qp->r_psn; 10353ce5daa2SKaike Wan __entry->diff = diff; 10363ce5daa2SKaike Wan ), 10373ce5daa2SKaike Wan TP_printk(/* print */ 10383ce5daa2SKaike Wan RCV_ERR_PRN, 10393ce5daa2SKaike Wan __get_str(dev), 10403ce5daa2SKaike Wan __entry->qpn, 10413ce5daa2SKaike Wan __entry->s_flags, 10423ce5daa2SKaike Wan __entry->state, 10434f9264d1SKaike Wan __entry->s_acked_ack_queue, 10443ce5daa2SKaike Wan __entry->s_tail_ack_queue, 10453ce5daa2SKaike Wan __entry->r_head_ack_queue, 10463ce5daa2SKaike Wan __entry->opcode, 10473ce5daa2SKaike Wan __entry->psn, 10483ce5daa2SKaike Wan __entry->r_psn, 10493ce5daa2SKaike Wan __entry->diff 10503ce5daa2SKaike Wan ) 10513ce5daa2SKaike Wan ); 10523ce5daa2SKaike Wan 10533ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 10543ce5daa2SKaike Wan hfi1_rc_rcv_err_template, hfi1_tid_rdma_rcv_err, 10553ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, u32 opcode, u32 psn, int diff), 10563ce5daa2SKaike Wan TP_ARGS(qp, opcode, psn, diff) 10573ce5daa2SKaike Wan ); 10583ce5daa2SKaike Wan 10593ce5daa2SKaike Wan DECLARE_EVENT_CLASS(/* sge */ 10603ce5daa2SKaike Wan hfi1_sge_template, 10613ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge), 10623ce5daa2SKaike Wan TP_ARGS(qp, index, sge), 10633ce5daa2SKaike Wan TP_STRUCT__entry(/* entry */ 10643ce5daa2SKaike Wan DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device)) 10653ce5daa2SKaike Wan __field(u32, qpn) 10663ce5daa2SKaike Wan __field(int, index) 10673ce5daa2SKaike Wan __field(u64, vaddr) 10683ce5daa2SKaike Wan __field(u32, sge_length) 10693ce5daa2SKaike Wan ), 10703ce5daa2SKaike Wan TP_fast_assign(/* assign */ 10713ce5daa2SKaike Wan DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device)); 10723ce5daa2SKaike Wan __entry->qpn = qp->ibqp.qp_num; 10733ce5daa2SKaike Wan __entry->index = index; 10743ce5daa2SKaike Wan __entry->vaddr = (u64)sge->vaddr; 10753ce5daa2SKaike Wan __entry->sge_length = sge->sge_length; 10763ce5daa2SKaike Wan ), 10773ce5daa2SKaike Wan TP_printk(/* print */ 10783ce5daa2SKaike Wan "[%s] qpn 0x%x sge %d: vaddr 0x%llx sge_length %u", 10793ce5daa2SKaike Wan __get_str(dev), 10803ce5daa2SKaike Wan __entry->qpn, 10813ce5daa2SKaike Wan __entry->index, 10823ce5daa2SKaike Wan __entry->vaddr, 10833ce5daa2SKaike Wan __entry->sge_length 10843ce5daa2SKaike Wan ) 10853ce5daa2SKaike Wan ); 10863ce5daa2SKaike Wan 10873ce5daa2SKaike Wan DEFINE_EVENT(/* event */ 10883ce5daa2SKaike Wan hfi1_sge_template, hfi1_sge_check_align, 10893ce5daa2SKaike Wan TP_PROTO(struct rvt_qp *qp, int index, struct rvt_sge *sge), 10903ce5daa2SKaike Wan TP_ARGS(qp, index, sge) 10913ce5daa2SKaike Wan ); 10923ce5daa2SKaike Wan 1093a131d164SKaike Wan #endif /* __HFI1_TRACE_TID_H */ 1094a131d164SKaike Wan 1095a131d164SKaike Wan #undef TRACE_INCLUDE_PATH 1096a131d164SKaike Wan #undef TRACE_INCLUDE_FILE 1097a131d164SKaike Wan #define TRACE_INCLUDE_PATH . 1098a131d164SKaike Wan #define TRACE_INCLUDE_FILE trace_tid 1099a131d164SKaike Wan #include <trace/define_trace.h> 1100