mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
xprtrdma: Add trace points to instrument QP and CQ access upcalls
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
fc1eb8076f
commit
643cf3237d
2 changed files with 34 additions and 0 deletions
|
@ -375,6 +375,37 @@ DEFINE_RXPRT_EVENT(xprtrdma_reinsert);
|
||||||
DEFINE_RXPRT_EVENT(xprtrdma_reconnect);
|
DEFINE_RXPRT_EVENT(xprtrdma_reconnect);
|
||||||
DEFINE_RXPRT_EVENT(xprtrdma_inject_dsc);
|
DEFINE_RXPRT_EVENT(xprtrdma_inject_dsc);
|
||||||
|
|
||||||
|
TRACE_EVENT(xprtrdma_qp_error,
|
||||||
|
TP_PROTO(
|
||||||
|
const struct rpcrdma_xprt *r_xprt,
|
||||||
|
const struct ib_event *event
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_ARGS(r_xprt, event),
|
||||||
|
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field(const void *, r_xprt)
|
||||||
|
__field(unsigned int, event)
|
||||||
|
__string(name, event->device->name)
|
||||||
|
__string(addr, rpcrdma_addrstr(r_xprt))
|
||||||
|
__string(port, rpcrdma_portstr(r_xprt))
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->r_xprt = r_xprt;
|
||||||
|
__entry->event = event->event;
|
||||||
|
__assign_str(name, event->device->name);
|
||||||
|
__assign_str(addr, rpcrdma_addrstr(r_xprt));
|
||||||
|
__assign_str(port, rpcrdma_portstr(r_xprt));
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_printk("peer=[%s]:%s r_xprt=%p: dev %s: %s (%u)",
|
||||||
|
__get_str(addr), __get_str(port), __entry->r_xprt,
|
||||||
|
__get_str(name), rdma_show_ib_event(__entry->event),
|
||||||
|
__entry->event
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
** Call events
|
** Call events
|
||||||
**/
|
**/
|
||||||
|
|
|
@ -108,7 +108,10 @@ static void
|
||||||
rpcrdma_qp_async_error_upcall(struct ib_event *event, void *context)
|
rpcrdma_qp_async_error_upcall(struct ib_event *event, void *context)
|
||||||
{
|
{
|
||||||
struct rpcrdma_ep *ep = context;
|
struct rpcrdma_ep *ep = context;
|
||||||
|
struct rpcrdma_xprt *r_xprt = container_of(ep, struct rpcrdma_xprt,
|
||||||
|
rx_ep);
|
||||||
|
|
||||||
|
trace_xprtrdma_qp_error(r_xprt, event);
|
||||||
pr_err("rpcrdma: %s on device %s ep %p\n",
|
pr_err("rpcrdma: %s on device %s ep %p\n",
|
||||||
ib_event_msg(event->event), event->device->name, context);
|
ib_event_msg(event->event), event->device->name, context);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue