Commit 9d200638 authored by Chuck Lever's avatar Chuck Lever
Browse files

svcrdma: Trace page overruns when constructing RDMA Reads



Clean up: Replace a dprintk call site with a tracepoint.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent f4e53e1c
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -1637,6 +1637,34 @@ TRACE_EVENT(svcrdma_no_rwctx_err,
	)
);

TRACE_EVENT(svcrdma_page_overrun_err,
	TP_PROTO(
		const struct svcxprt_rdma *rdma,
		const struct svc_rqst *rqst,
		unsigned int pageno
	),

	TP_ARGS(rdma, rqst, pageno),

	TP_STRUCT__entry(
		__field(unsigned int, pageno)
		__field(u32, xid)
		__string(device, rdma->sc_cm_id->device->name)
		__string(addr, rdma->sc_xprt.xpt_remotebuf)
	),

	TP_fast_assign(
		__entry->pageno = pageno;
		__entry->xid = __be32_to_cpu(rqst->rq_xid);
		__assign_str(device, rdma->sc_cm_id->device->name);
		__assign_str(addr, rdma->sc_xprt.xpt_remotebuf);
	),

	TP_printk("addr=%s device=%s xid=0x%08x pageno=%u", __get_str(addr),
		__get_str(device), __entry->xid, __entry->pageno
	)
);

TRACE_EVENT(svcrdma_send_pullup,
	TP_PROTO(
		unsigned int len
+1 −1
Original line number Diff line number Diff line
@@ -676,7 +676,7 @@ static int svc_rdma_build_read_segment(struct svc_rdma_read_info *info,
	return 0;

out_overrun:
	dprintk("svcrdma: request overruns rq_pages\n");
	trace_svcrdma_page_overrun_err(cc->cc_rdma, rqstp, info->ri_pageno);
	return -EINVAL;
}