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