Skip to content

Commit 83525b6

Browse files
mmarcinigregkh
authored andcommitted
staging/rdma/hfi1: add additional rc traces
Add additional rc traces to aid in debugging rc retry logic. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 64ffd86 commit 83525b6

File tree

3 files changed

+42
-14
lines changed

3 files changed

+42
-14
lines changed

drivers/staging/rdma/hfi1/rc.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -927,6 +927,7 @@ static void rc_timeout(unsigned long arg)
927927
ibp->n_rc_timeouts++;
928928
qp->s_flags &= ~HFI1_S_TIMER;
929929
del_timer(&qp->s_timer);
930+
trace_hfi1_rc_timeout(qp, qp->s_last_psn + 1);
930931
restart_rc(qp, qp->s_last_psn + 1, 1);
931932
hfi1_schedule_send(qp);
932933
}
@@ -1442,6 +1443,8 @@ static void rc_rcv_resp(struct hfi1_ibport *ibp,
14421443

14431444
spin_lock_irqsave(&qp->s_lock, flags);
14441445

1446+
trace_hfi1_rc_ack(qp, psn);
1447+
14451448
/* Ignore invalid responses. */
14461449
if (cmp_psn(psn, qp->s_next_psn) >= 0)
14471450
goto ack_done;
@@ -1630,6 +1633,7 @@ static noinline int rc_rcv_error(struct hfi1_other_headers *ohdr, void *data,
16301633
u8 i, prev;
16311634
int old_req;
16321635

1636+
trace_hfi1_rc_rcv_error(qp, psn);
16331637
if (diff > 0) {
16341638
/*
16351639
* Packet sequence error.

drivers/staging/rdma/hfi1/trace.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,13 @@ const char *parse_everbs_hdrs(
126126
case OP(RC, ACKNOWLEDGE):
127127
trace_seq_printf(p, AETH_PRN,
128128
be32_to_cpu(eh->aeth) >> 24,
129-
be32_to_cpu(eh->aeth) & HFI1_QPN_MASK);
129+
be32_to_cpu(eh->aeth) & HFI1_MSN_MASK);
130130
break;
131131
/* aeth + atomicacketh */
132132
case OP(RC, ATOMIC_ACKNOWLEDGE):
133133
trace_seq_printf(p, AETH_PRN " " ATOMICACKETH_PRN,
134134
(be32_to_cpu(eh->at.aeth) >> 24) & 0xff,
135-
be32_to_cpu(eh->at.aeth) & HFI1_QPN_MASK,
135+
be32_to_cpu(eh->at.aeth) & HFI1_MSN_MASK,
136136
(unsigned long long)ib_u64_get(eh->at.atomic_ack_eth));
137137
break;
138138
/* atomiceth */

drivers/staging/rdma/hfi1/trace.h

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,37 +1252,61 @@ TRACE_EVENT(hfi1_sdma_state,
12521252
#undef TRACE_SYSTEM
12531253
#define TRACE_SYSTEM hfi1_rc
12541254

1255-
DECLARE_EVENT_CLASS(hfi1_sdma_rc,
1255+
DECLARE_EVENT_CLASS(hfi1_rc_template,
12561256
TP_PROTO(struct hfi1_qp *qp, u32 psn),
12571257
TP_ARGS(qp, psn),
12581258
TP_STRUCT__entry(
12591259
DD_DEV_ENTRY(dd_from_ibdev(qp->ibqp.device))
12601260
__field(u32, qpn)
1261-
__field(u32, flags)
1261+
__field(u32, s_flags)
12621262
__field(u32, psn)
1263-
__field(u32, sending_psn)
1264-
__field(u32, sending_hpsn)
1263+
__field(u32, s_psn)
1264+
__field(u32, s_next_psn)
1265+
__field(u32, s_sending_psn)
1266+
__field(u32, s_sending_hpsn)
1267+
__field(u32, r_psn)
12651268
),
12661269
TP_fast_assign(
12671270
DD_DEV_ASSIGN(dd_from_ibdev(qp->ibqp.device))
12681271
__entry->qpn = qp->ibqp.qp_num;
1269-
__entry->flags = qp->s_flags;
1272+
__entry->s_flags = qp->s_flags;
12701273
__entry->psn = psn;
1271-
__entry->sending_psn = qp->s_sending_psn;
1272-
__entry->sending_hpsn = qp->s_sending_hpsn;
1274+
__entry->s_psn = qp->s_psn;
1275+
__entry->s_next_psn = qp->s_next_psn;
1276+
__entry->s_sending_psn = qp->s_sending_psn;
1277+
__entry->s_sending_hpsn = qp->s_sending_hpsn;
1278+
__entry->r_psn = qp->r_psn;
12731279
),
12741280
TP_printk(
1275-
"[%s] qpn 0x%x flags 0x%x psn 0x%x sending_psn 0x%x sending_hpsn 0x%x",
1281+
"[%s] qpn 0x%x s_flags 0x%x psn 0x%x s_psn 0x%x s_next_psn 0x%x s_sending_psn 0x%x sending_hpsn 0x%x r_psn 0x%x",
12761282
__get_str(dev),
12771283
__entry->qpn,
1278-
__entry->flags,
1284+
__entry->s_flags,
12791285
__entry->psn,
1280-
__entry->sending_psn,
1281-
__entry->sending_psn
1286+
__entry->s_psn,
1287+
__entry->s_next_psn,
1288+
__entry->s_sending_psn,
1289+
__entry->s_sending_hpsn,
1290+
__entry->r_psn
12821291
)
12831292
);
12841293

1285-
DEFINE_EVENT(hfi1_sdma_rc, hfi1_rc_sendcomplete,
1294+
DEFINE_EVENT(hfi1_rc_template, hfi1_rc_sendcomplete,
1295+
TP_PROTO(struct hfi1_qp *qp, u32 psn),
1296+
TP_ARGS(qp, psn)
1297+
);
1298+
1299+
DEFINE_EVENT(hfi1_rc_template, hfi1_rc_ack,
1300+
TP_PROTO(struct hfi1_qp *qp, u32 psn),
1301+
TP_ARGS(qp, psn)
1302+
);
1303+
1304+
DEFINE_EVENT(hfi1_rc_template, hfi1_rc_timeout,
1305+
TP_PROTO(struct hfi1_qp *qp, u32 psn),
1306+
TP_ARGS(qp, psn)
1307+
);
1308+
1309+
DEFINE_EVENT(hfi1_rc_template, hfi1_rc_rcv_error,
12861310
TP_PROTO(struct hfi1_qp *qp, u32 psn),
12871311
TP_ARGS(qp, psn)
12881312
);

0 commit comments

Comments
 (0)