Skip to content

Commit 643cf32

Browse files
chuckleveramschuma-ntap
authored andcommitted
xprtrdma: Add trace points to instrument QP and CQ access upcalls
Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Anna Schumaker <[email protected]>
1 parent fc1eb80 commit 643cf32

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

include/trace/events/rpcrdma.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,37 @@ DEFINE_RXPRT_EVENT(xprtrdma_reinsert);
375375
DEFINE_RXPRT_EVENT(xprtrdma_reconnect);
376376
DEFINE_RXPRT_EVENT(xprtrdma_inject_dsc);
377377

378+
TRACE_EVENT(xprtrdma_qp_error,
379+
TP_PROTO(
380+
const struct rpcrdma_xprt *r_xprt,
381+
const struct ib_event *event
382+
),
383+
384+
TP_ARGS(r_xprt, event),
385+
386+
TP_STRUCT__entry(
387+
__field(const void *, r_xprt)
388+
__field(unsigned int, event)
389+
__string(name, event->device->name)
390+
__string(addr, rpcrdma_addrstr(r_xprt))
391+
__string(port, rpcrdma_portstr(r_xprt))
392+
),
393+
394+
TP_fast_assign(
395+
__entry->r_xprt = r_xprt;
396+
__entry->event = event->event;
397+
__assign_str(name, event->device->name);
398+
__assign_str(addr, rpcrdma_addrstr(r_xprt));
399+
__assign_str(port, rpcrdma_portstr(r_xprt));
400+
),
401+
402+
TP_printk("peer=[%s]:%s r_xprt=%p: dev %s: %s (%u)",
403+
__get_str(addr), __get_str(port), __entry->r_xprt,
404+
__get_str(name), rdma_show_ib_event(__entry->event),
405+
__entry->event
406+
)
407+
);
408+
378409
/**
379410
** Call events
380411
**/

net/sunrpc/xprtrdma/verbs.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,10 @@ static void
108108
rpcrdma_qp_async_error_upcall(struct ib_event *event, void *context)
109109
{
110110
struct rpcrdma_ep *ep = context;
111+
struct rpcrdma_xprt *r_xprt = container_of(ep, struct rpcrdma_xprt,
112+
rx_ep);
111113

114+
trace_xprtrdma_qp_error(r_xprt, event);
112115
pr_err("rpcrdma: %s on device %s ep %p\n",
113116
ib_event_msg(event->event), event->device->name, context);
114117

0 commit comments

Comments
 (0)