History

Merge tag 'nfs-rdma-for-5.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs into linux-next

NFSoRDmA Client updates for Linux 5.11 Cleanups and improvements: - Remove use of raw kernel memory addresses in tracepoints - Replace dprintk() call sites in ERR_CHUNK path - Trace unmap sync calls - Optimize MR DMA-unmapping

Trond Myklebust committed 5 years ago

Commit edffb842 parents 5c3485b 7a03aeb7 files · +302 −313Browse files

Showing the changes to include/trace (1 of 7 files). Show all

Unified · Split

include/trace/events/rpcrdma.h+212−238
@@ -60,7 +60,7 @@ DECLARE_EVENT_CLASS(rpcrdma_completion_class, · 59 unmodified lines
6060 ), \
6161 TP_ARGS(wc, cid))
6262
63−DECLARE_EVENT_CLASS(xprtrdma_reply_event,
63+DECLARE_EVENT_CLASS(xprtrdma_reply_class,
6464 TP_PROTO(
6565 const struct rpcrdma_rep *rep
6666 ),
@@ -68,29 +68,30 @@ DECLARE_EVENT_CLASS(xprtrdma_reply_event, · 1 unmodified line
6868 TP_ARGS(rep),
6969
7070 TP_STRUCT__entry(
71− __field(const void *, rep)
72− __field(const void *, r_xprt)
7371 __field(u32, xid)
7472 __field(u32, version)
7573 __field(u32, proc)
74+ __string(addr, rpcrdma_addrstr(rep->rr_rxprt))
75+ __string(port, rpcrdma_portstr(rep->rr_rxprt))
7676 ),
7777
7878 TP_fast_assign(
79− __entry->rep = rep;
80− __entry->r_xprt = rep->rr_rxprt;
8179 __entry->xid = be32_to_cpu(rep->rr_xid);
8280 __entry->version = be32_to_cpu(rep->rr_vers);
8381 __entry->proc = be32_to_cpu(rep->rr_proc);
82+ __assign_str(addr, rpcrdma_addrstr(rep->rr_rxprt));
83+ __assign_str(port, rpcrdma_portstr(rep->rr_rxprt));
8484 ),
8585
86− TP_printk("rxprt %p xid=0x%08x rep=%p: version %u proc %u",
87− __entry->r_xprt, __entry->xid, __entry->rep,
88− __entry->version, __entry->proc
86+ TP_printk("peer=[%s]:%s xid=0x%08x version=%u proc=%u",
87+ __get_str(addr), __get_str(port),
88+ __entry->xid, __entry->version, __entry->proc
8989 )
9090 );
9191
9292 #define DEFINE_REPLY_EVENT(name) \
93− DEFINE_EVENT(xprtrdma_reply_event, name, \
93+ DEFINE_EVENT(xprtrdma_reply_class, \
94+ xprtrdma_reply_##name##_err, \
9495 TP_PROTO( \
9596 const struct rpcrdma_rep *rep \
9697 ), \
@@ -261,54 +262,67 @@ DECLARE_EVENT_CLASS(xprtrdma_wrch_event, · 164 unmodified lines
261262 ), \
262263 TP_ARGS(task, mr, nsegs))
263264
264−DECLARE_EVENT_CLASS(xprtrdma_frwr_done,
265+TRACE_DEFINE_ENUM(DMA_BIDIRECTIONAL);
266+TRACE_DEFINE_ENUM(DMA_TO_DEVICE);
267+TRACE_DEFINE_ENUM(DMA_FROM_DEVICE);
268+TRACE_DEFINE_ENUM(DMA_NONE);
269+
270+#define xprtrdma_show_direction(x) \
271+ __print_symbolic(x, \
272+ { DMA_BIDIRECTIONAL, "BIDIR" }, \
273+ { DMA_TO_DEVICE, "TO_DEVICE" }, \
274+ { DMA_FROM_DEVICE, "FROM_DEVICE" }, \
275+ { DMA_NONE, "NONE" })
276+
277+DECLARE_EVENT_CLASS(xprtrdma_mr_class,
265278 TP_PROTO(
266− const struct ib_wc *wc,
267− const struct rpcrdma_frwr *frwr
279+ const struct rpcrdma_mr *mr
268280 ),
269281
270− TP_ARGS(wc, frwr),
282+ TP_ARGS(mr),
271283
272284 TP_STRUCT__entry(
285+ __field(unsigned int, task_id)
286+ __field(unsigned int, client_id)
273287 __field(u32, mr_id)
274− __field(unsigned int, status)
275− __field(unsigned int, vendor_err)
288+ __field(int, nents)
289+ __field(u32, handle)
290+ __field(u32, length)
291+ __field(u64, offset)
292+ __field(u32, dir)
276293 ),
277294
278295 TP_fast_assign(
279− __entry->mr_id = frwr->fr_mr->res.id;
280− __entry->status = wc->status;
281− __entry->vendor_err = __entry->status ? wc->vendor_err : 0;
296+ const struct rpcrdma_req *req = mr->mr_req;
297+ const struct rpc_task *task = req->rl_slot.rq_task;
298+
299+ __entry->task_id = task->tk_pid;
300+ __entry->client_id = task->tk_client->cl_clid;
301+ __entry->mr_id = mr->frwr.fr_mr->res.id;
302+ __entry->nents = mr->mr_nents;
303+ __entry->handle = mr->mr_handle;
304+ __entry->length = mr->mr_length;
305+ __entry->offset = mr->mr_offset;
306+ __entry->dir = mr->mr_dir;
282307 ),
283308
284− TP_printk(
285− "mr.id=%u: %s (%u/0x%x)",
286− __entry->mr_id, rdma_show_wc_status(__entry->status),
287− __entry->status, __entry->vendor_err
309+ TP_printk("task:%u@%u mr.id=%u nents=%d %u@0x%016llx:0x%08x (%s)",
310+ __entry->task_id, __entry->client_id,
311+ __entry->mr_id, __entry->nents, __entry->length,
312+ (unsigned long long)__entry->offset, __entry->handle,
313+ xprtrdma_show_direction(__entry->dir)
288314 )
289315 );
290316
291−#define DEFINE_FRWR_DONE_EVENT(name) \
292− DEFINE_EVENT(xprtrdma_frwr_done, name, \
317+#define DEFINE_MR_EVENT(name) \
318+ DEFINE_EVENT(xprtrdma_mr_class, \
319+ xprtrdma_mr_##name, \
293320 TP_PROTO( \
294− const struct ib_wc *wc, \
295− const struct rpcrdma_frwr *frwr \
321+ const struct rpcrdma_mr *mr \
296322 ), \
297− TP_ARGS(wc, frwr))
298−
299−TRACE_DEFINE_ENUM(DMA_BIDIRECTIONAL);
300−TRACE_DEFINE_ENUM(DMA_TO_DEVICE);
301−TRACE_DEFINE_ENUM(DMA_FROM_DEVICE);
302−TRACE_DEFINE_ENUM(DMA_NONE);
303−
304−#define xprtrdma_show_direction(x) \
305− __print_symbolic(x, \
306− { DMA_BIDIRECTIONAL, "BIDIR" }, \
307− { DMA_TO_DEVICE, "TO_DEVICE" }, \
308− { DMA_FROM_DEVICE, "FROM_DEVICE" }, \
309− { DMA_NONE, "NONE" })
323+ TP_ARGS(mr))
310324
311−DECLARE_EVENT_CLASS(xprtrdma_mr,
325+DECLARE_EVENT_CLASS(xprtrdma_anonymous_mr_class,
312326 TP_PROTO(
313327 const struct rpcrdma_mr *mr
314328 ),
@@ -340,45 +354,47 @@ DECLARE_EVENT_CLASS(xprtrdma_mr, · 25 unmodified lines
340354 )
341355 );
342356
343−#define DEFINE_MR_EVENT(name) \
344− DEFINE_EVENT(xprtrdma_mr, xprtrdma_mr_##name, \
345− TP_PROTO( \
346− const struct rpcrdma_mr *mr \
347− ), \
357+#define DEFINE_ANON_MR_EVENT(name) \
358+ DEFINE_EVENT(xprtrdma_anonymous_mr_class, \
359+ xprtrdma_mr_##name, \
360+ TP_PROTO( \
361+ const struct rpcrdma_mr *mr \
362+ ), \
348363 TP_ARGS(mr))
349364
350−DECLARE_EVENT_CLASS(xprtrdma_cb_event,
365+DECLARE_EVENT_CLASS(xprtrdma_callback_class,
351366 TP_PROTO(
367+ const struct rpcrdma_xprt *r_xprt,
352368 const struct rpc_rqst *rqst
353369 ),
354370
355− TP_ARGS(rqst),
371+ TP_ARGS(r_xprt, rqst),
356372
357373 TP_STRUCT__entry(
358− __field(const void *, rqst)
359− __field(const void *, rep)
360− __field(const void *, req)
361374 __field(u32, xid)
375+ __string(addr, rpcrdma_addrstr(r_xprt))
376+ __string(port, rpcrdma_portstr(r_xprt))
362377 ),
363378
364379 TP_fast_assign(
365− __entry->rqst = rqst;
366− __entry->req = rpcr_to_rdmar(rqst);
367− __entry->rep = rpcr_to_rdmar(rqst)->rl_reply;
368380 __entry->xid = be32_to_cpu(rqst->rq_xid);
381+ __assign_str(addr, rpcrdma_addrstr(r_xprt));
382+ __assign_str(port, rpcrdma_portstr(r_xprt));
369383 ),
370384
371− TP_printk("xid=0x%08x, rqst=%p req=%p rep=%p",
372− __entry->xid, __entry->rqst, __entry->req, __entry->rep
385+ TP_printk("peer=[%s]:%s xid=0x%08x",
386+ __get_str(addr), __get_str(port), __entry->xid
373387 )
374388 );
375389
376−#define DEFINE_CB_EVENT(name) \
377− DEFINE_EVENT(xprtrdma_cb_event, name, \
390+#define DEFINE_CALLBACK_EVENT(name) \
391+ DEFINE_EVENT(xprtrdma_callback_class, \
392+ xprtrdma_cb_##name, \
378393 TP_PROTO( \
394+ const struct rpcrdma_xprt *r_xprt, \
379395 const struct rpc_rqst *rqst \
380396 ), \
381− TP_ARGS(rqst))
397+ TP_ARGS(r_xprt, rqst))
382398
383399 /**
384400 ** Connection events
@@ -549,61 +565,33 @@ TRACE_EVENT(xprtrdma_createmrs, · 164 unmodified lines
549565 )
550566 );
551567
552−TRACE_EVENT(xprtrdma_mr_get,
553− TP_PROTO(
554− const struct rpcrdma_req *req
555− ),
556−
557− TP_ARGS(req),
558−
559− TP_STRUCT__entry(
560− __field(const void *, req)
561− __field(unsigned int, task_id)
562− __field(unsigned int, client_id)
563− __field(u32, xid)
564− ),
565−
566− TP_fast_assign(
567− const struct rpc_rqst *rqst = &req->rl_slot;
568−
569− __entry->req = req;
570− __entry->task_id = rqst->rq_task->tk_pid;
571− __entry->client_id = rqst->rq_task->tk_client->cl_clid;
572− __entry->xid = be32_to_cpu(rqst->rq_xid);
573− ),
574−
575− TP_printk("task:%u@%u xid=0x%08x req=%p",
576− __entry->task_id, __entry->client_id, __entry->xid,
577− __entry->req
578− )
579−);
580−
581−TRACE_EVENT(xprtrdma_nomrs,
568+TRACE_EVENT(xprtrdma_nomrs_err,
582569 TP_PROTO(
570+ const struct rpcrdma_xprt *r_xprt,
583571 const struct rpcrdma_req *req
584572 ),
585573
586− TP_ARGS(req),
574+ TP_ARGS(r_xprt, req),
587575
588576 TP_STRUCT__entry(
589− __field(const void *, req)
590577 __field(unsigned int, task_id)
591578 __field(unsigned int, client_id)
592− __field(u32, xid)
579+ __string(addr, rpcrdma_addrstr(r_xprt))
580+ __string(port, rpcrdma_portstr(r_xprt))
593581 ),
594582
595583 TP_fast_assign(
596584 const struct rpc_rqst *rqst = &req->rl_slot;
597585
598− __entry->req = req;
599586 __entry->task_id = rqst->rq_task->tk_pid;
600587 __entry->client_id = rqst->rq_task->tk_client->cl_clid;
601− __entry->xid = be32_to_cpu(rqst->rq_xid);
588+ __assign_str(addr, rpcrdma_addrstr(r_xprt));
589+ __assign_str(port, rpcrdma_portstr(r_xprt));
602590 ),
603591
604− TP_printk("task:%u@%u xid=0x%08x req=%p",
605− __entry->task_id, __entry->client_id, __entry->xid,
606− __entry->req
592+ TP_printk("peer=[%s]:%s task:%u@%u",
593+ __get_str(addr), __get_str(port),
594+ __entry->task_id, __entry->client_id
607595 )
608596 );
609597
@@ -735,8 +723,8 @@ TRACE_EVENT(xprtrdma_post_send, · 125 unmodified lines
735723 TP_ARGS(req),
736724
737725 TP_STRUCT__entry(
738− __field(const void *, req)
739− __field(const void *, sc)
726+ __field(u32, cq_id)
727+ __field(int, completion_id)
740728 __field(unsigned int, task_id)
741729 __field(unsigned int, client_id)
742730 __field(int, num_sge)
@@ -745,20 +733,21 @@ TRACE_EVENT(xprtrdma_post_send, · 2 unmodified lines
745733
746734 TP_fast_assign(
747735 const struct rpc_rqst *rqst = &req->rl_slot;
736+ const struct rpcrdma_sendctx *sc = req->rl_sendctx;
748737
738+ __entry->cq_id = sc->sc_cid.ci_queue_id;
739+ __entry->completion_id = sc->sc_cid.ci_completion_id;
749740 __entry->task_id = rqst->rq_task->tk_pid;
750741 __entry->client_id = rqst->rq_task->tk_client ?
751742 rqst->rq_task->tk_client->cl_clid : -1;
752− __entry->req = req;
753− __entry->sc = req->rl_sendctx;
754743 __entry->num_sge = req->rl_wr.num_sge;
755744 __entry->signaled = req->rl_wr.send_flags & IB_SEND_SIGNALED;
756745 ),
757746
758− TP_printk("task:%u@%u req=%p sc=%p (%d SGE%s) %s",
747+ TP_printk("task:%u@%u cq.id=%u cid=%d (%d SGE%s) %s",
759748 __entry->task_id, __entry->client_id,
760− __entry->req, __entry->sc, __entry->num_sge,
761− (__entry->num_sge == 1 ? "" : "s"),
749+ __entry->cq_id, __entry->completion_id,
750+ __entry->num_sge, (__entry->num_sge == 1 ? "" : "s"),
762751 (__entry->signaled ? "signaled" : "")
763752 )
764753 );
@@ -771,15 +760,17 @@ TRACE_EVENT(xprtrdma_post_recv, · 6 unmodified lines
771760 TP_ARGS(rep),
772761
773762 TP_STRUCT__entry(
774− __field(const void *, rep)
763+ __field(u32, cq_id)
764+ __field(int, completion_id)
775765 ),
776766
777767 TP_fast_assign(
778− __entry->rep = rep;
768+ __entry->cq_id = rep->rr_cid.ci_queue_id;
769+ __entry->completion_id = rep->rr_cid.ci_completion_id;
779770 ),
780771
781− TP_printk("rep=%p",
782− __entry->rep
772+ TP_printk("cq.id=%d cid=%d",
773+ __entry->cq_id, __entry->completion_id
783774 )
784775 );
785776
@@ -816,7 +807,7 @@ TRACE_EVENT(xprtrdma_post_recvs, · 30 unmodified lines
816807 )
817808 );
818809
819−TRACE_EVENT(xprtrdma_post_linv,
810+TRACE_EVENT(xprtrdma_post_linv_err,
820811 TP_PROTO(
821812 const struct rpcrdma_req *req,
822813 int status
@@ -825,19 +816,21 @@ TRACE_EVENT(xprtrdma_post_linv, · 2 unmodified lines
825816 TP_ARGS(req, status),
826817
827818 TP_STRUCT__entry(
828− __field(const void *, req)
819+ __field(unsigned int, task_id)
820+ __field(unsigned int, client_id)
829821 __field(int, status)
830− __field(u32, xid)
831822 ),
832823
833824 TP_fast_assign(
834− __entry->req = req;
825+ const struct rpc_task *task = req->rl_slot.rq_task;
826+
827+ __entry->task_id = task->tk_pid;
828+ __entry->client_id = task->tk_client->cl_clid;
835829 __entry->status = status;
836− __entry->xid = be32_to_cpu(req->rl_slot.rq_xid);
837830 ),
838831
839− TP_printk("req=%p xid=0x%08x status=%d",
840− __entry->req, __entry->xid, __entry->status
832+ TP_printk("task:%u@%u status=%d",
833+ __entry->task_id, __entry->client_id, __entry->status
841834 )
842835 );
843836
@@ -845,75 +838,12 @@ TRACE_EVENT(xprtrdma_post_linv, · 1 unmodified line
845838 ** Completion events
846839 **/
847840
848−TRACE_EVENT(xprtrdma_wc_send,
849− TP_PROTO(
850− const struct rpcrdma_sendctx *sc,
851− const struct ib_wc *wc
852− ),
853−
854− TP_ARGS(sc, wc),
855−
856− TP_STRUCT__entry(
857− __field(const void *, req)
858− __field(const void *, sc)
859− __field(unsigned int, unmap_count)
860− __field(unsigned int, status)
861− __field(unsigned int, vendor_err)
862− ),
863−
864− TP_fast_assign(
865− __entry->req = sc->sc_req;
866− __entry->sc = sc;
867− __entry->unmap_count = sc->sc_unmap_count;
868− __entry->status = wc->status;
869− __entry->vendor_err = __entry->status ? wc->vendor_err : 0;
870− ),
871−
872− TP_printk("req=%p sc=%p unmapped=%u: %s (%u/0x%x)",
873− __entry->req, __entry->sc, __entry->unmap_count,
874− rdma_show_wc_status(__entry->status),
875− __entry->status, __entry->vendor_err
876− )
877−);
878−
879−TRACE_EVENT(xprtrdma_wc_receive,
880− TP_PROTO(
881− const struct ib_wc *wc
882− ),
883−
884− TP_ARGS(wc),
885−
886− TP_STRUCT__entry(
887− __field(const void *, rep)
888− __field(u32, byte_len)
889− __field(unsigned int, status)
890− __field(u32, vendor_err)
891− ),
892−
893− TP_fast_assign(
894− __entry->rep = container_of(wc->wr_cqe, struct rpcrdma_rep,
895− rr_cqe);
896− __entry->status = wc->status;
897− if (wc->status) {
898− __entry->byte_len = 0;
899− __entry->vendor_err = wc->vendor_err;
900− } else {
901− __entry->byte_len = wc->byte_len;
902− __entry->vendor_err = 0;
903− }
904− ),
905−
906− TP_printk("rep=%p %u bytes: %s (%u/0x%x)",
907− __entry->rep, __entry->byte_len,
908− rdma_show_wc_status(__entry->status),
909− __entry->status, __entry->vendor_err
910− )
911−);
912−
913−DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_fastreg);
914−DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li);
915−DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li_wake);
916−DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li_done);
841+DEFINE_COMPLETION_EVENT(xprtrdma_wc_receive);
842+DEFINE_COMPLETION_EVENT(xprtrdma_wc_send);
843+DEFINE_COMPLETION_EVENT(xprtrdma_wc_fastreg);
844+DEFINE_COMPLETION_EVENT(xprtrdma_wc_li);
845+DEFINE_COMPLETION_EVENT(xprtrdma_wc_li_wake);
846+DEFINE_COMPLETION_EVENT(xprtrdma_wc_li_done);
917847
918848 TRACE_EVENT(xprtrdma_frwr_alloc,
919849 TP_PROTO(
@@ -1036,9 +966,9 @@ TRACE_EVENT(xprtrdma_frwr_maperr, · 116 unmodified lines
1036966
1037967 DEFINE_MR_EVENT(localinv);
1038968 DEFINE_MR_EVENT(map);
1039−DEFINE_MR_EVENT(unmap);
1040−DEFINE_MR_EVENT(reminv);
1041−DEFINE_MR_EVENT(recycle);
969+
970+DEFINE_ANON_MR_EVENT(unmap);
971+DEFINE_ANON_MR_EVENT(recycle);
1042972
1043973 TRACE_EVENT(xprtrdma_dma_maperr,
1044974 TP_PROTO(
@@ -1066,17 +996,14 @@ TRACE_EVENT(xprtrdma_reply, · 21 unmodified lines
1066996 TP_PROTO(
1067997 const struct rpc_task *task,
1068998 const struct rpcrdma_rep *rep,
1069− const struct rpcrdma_req *req,
1070999 unsigned int credits
10711000 ),
10721001
1073− TP_ARGS(task, rep, req, credits),
1002+ TP_ARGS(task, rep, credits),
10741003
10751004 TP_STRUCT__entry(
10761005 __field(unsigned int, task_id)
10771006 __field(unsigned int, client_id)
1078− __field(const void *, rep)
1079− __field(const void *, req)
10801007 __field(u32, xid)
10811008 __field(unsigned int, credits)
10821009 ),
@@ -1084,49 +1011,102 @@ TRACE_EVENT(xprtrdma_reply, · 1 unmodified line
10841011 TP_fast_assign(
10851012 __entry->task_id = task->tk_pid;
10861013 __entry->client_id = task->tk_client->cl_clid;
1087− __entry->rep = rep;
1088− __entry->req = req;
10891014 __entry->xid = be32_to_cpu(rep->rr_xid);
10901015 __entry->credits = credits;
10911016 ),
10921017
1093− TP_printk("task:%u@%u xid=0x%08x, %u credits, rep=%p -> req=%p",
1018+ TP_printk("task:%u@%u xid=0x%08x credits=%u",
10941019 __entry->task_id, __entry->client_id, __entry->xid,
1095− __entry->credits, __entry->rep, __entry->req
1020+ __entry->credits
10961021 )
10971022 );
10981023
1099−TRACE_EVENT(xprtrdma_defer_cmp,
1024+DEFINE_REPLY_EVENT(vers);
1025+DEFINE_REPLY_EVENT(rqst);
1026+DEFINE_REPLY_EVENT(short);
1027+DEFINE_REPLY_EVENT(hdr);
1028+
1029+TRACE_EVENT(xprtrdma_err_vers,
11001030 TP_PROTO(
1101− const struct rpcrdma_rep *rep
1031+ const struct rpc_rqst *rqst,
1032+ __be32 *min,
1033+ __be32 *max
11021034 ),
11031035
1104− TP_ARGS(rep),
1036+ TP_ARGS(rqst, min, max),
11051037
11061038 TP_STRUCT__entry(
11071039 __field(unsigned int, task_id)
11081040 __field(unsigned int, client_id)
1109− __field(const void *, rep)
11101041 __field(u32, xid)
1042+ __field(u32, min)
1043+ __field(u32, max)
11111044 ),
11121045
11131046 TP_fast_assign(
1114− __entry->task_id = rep->rr_rqst->rq_task->tk_pid;
1115− __entry->client_id = rep->rr_rqst->rq_task->tk_client->cl_clid;
1116− __entry->rep = rep;
1117− __entry->xid = be32_to_cpu(rep->rr_xid);
1047+ __entry->task_id = rqst->rq_task->tk_pid;
1048+ __entry->client_id = rqst->rq_task->tk_client->cl_clid;
1049+ __entry->xid = be32_to_cpu(rqst->rq_xid);
1050+ __entry->min = be32_to_cpup(min);
1051+ __entry->max = be32_to_cpup(max);
11181052 ),
11191053
1120− TP_printk("task:%u@%u xid=0x%08x rep=%p",
1054+ TP_printk("task:%u@%u xid=0x%08x versions=[%u, %u]",
11211055 __entry->task_id, __entry->client_id, __entry->xid,
1122− __entry->rep
1056+ __entry->min, __entry->max
1057+ )
1058+);
1059+
1060+TRACE_EVENT(xprtrdma_err_chunk,
1061+ TP_PROTO(
1062+ const struct rpc_rqst *rqst
1063+ ),
1064+
1065+ TP_ARGS(rqst),
1066+
1067+ TP_STRUCT__entry(
1068+ __field(unsigned int, task_id)
1069+ __field(unsigned int, client_id)
1070+ __field(u32, xid)
1071+ ),
1072+
1073+ TP_fast_assign(
1074+ __entry->task_id = rqst->rq_task->tk_pid;
1075+ __entry->client_id = rqst->rq_task->tk_client->cl_clid;
1076+ __entry->xid = be32_to_cpu(rqst->rq_xid);
1077+ ),
1078+
1079+ TP_printk("task:%u@%u xid=0x%08x",
1080+ __entry->task_id, __entry->client_id, __entry->xid
11231081 )
11241082 );
11251083
1126−DEFINE_REPLY_EVENT(xprtrdma_reply_vers);
1127−DEFINE_REPLY_EVENT(xprtrdma_reply_rqst);
1128−DEFINE_REPLY_EVENT(xprtrdma_reply_short);
1129−DEFINE_REPLY_EVENT(xprtrdma_reply_hdr);
1084+TRACE_EVENT(xprtrdma_err_unrecognized,
1085+ TP_PROTO(
1086+ const struct rpc_rqst *rqst,
1087+ __be32 *procedure
1088+ ),
1089+
1090+ TP_ARGS(rqst, procedure),
1091+
1092+ TP_STRUCT__entry(
1093+ __field(unsigned int, task_id)
1094+ __field(unsigned int, client_id)
1095+ __field(u32, xid)
1096+ __field(u32, procedure)
1097+ ),
1098+
1099+ TP_fast_assign(
1100+ __entry->task_id = rqst->rq_task->tk_pid;
1101+ __entry->client_id = rqst->rq_task->tk_client->cl_clid;
1102+ __entry->procedure = be32_to_cpup(procedure);
1103+ ),
1104+
1105+ TP_printk("task:%u@%u xid=0x%08x procedure=%u",
1106+ __entry->task_id, __entry->client_id, __entry->xid,
1107+ __entry->procedure
1108+ )
1109+);
11301110
11311111 TRACE_EVENT(xprtrdma_fixup,
11321112 TP_PROTO(
@@ -1187,6 +1167,28 @@ TRACE_EVENT(xprtrdma_decode_seg, · 54 unmodified lines
11871167 )
11881168 );
11891169
1170+TRACE_EVENT(xprtrdma_mrs_zap,
1171+ TP_PROTO(
1172+ const struct rpc_task *task
1173+ ),
1174+
1175+ TP_ARGS(task),
1176+
1177+ TP_STRUCT__entry(
1178+ __field(unsigned int, task_id)
1179+ __field(unsigned int, client_id)
1180+ ),
1181+
1182+ TP_fast_assign(
1183+ __entry->task_id = task->tk_pid;
1184+ __entry->client_id = task->tk_client->cl_clid;
1185+ ),
1186+
1187+ TP_printk("task:%u@%u",
1188+ __entry->task_id, __entry->client_id
1189+ )
1190+);
1191+
11901192 /**
11911193 ** Callback events
11921194 **/
@@ -1219,36 +1221,8 @@ TRACE_EVENT(xprtrdma_cb_setup, · 26 unmodified lines
12191221 )
12201222 );
12211223
1222−DEFINE_CB_EVENT(xprtrdma_cb_call);
1223−DEFINE_CB_EVENT(xprtrdma_cb_reply);
1224−
1225−TRACE_EVENT(xprtrdma_leaked_rep,
1226− TP_PROTO(
1227− const struct rpc_rqst *rqst,
1228− const struct rpcrdma_rep *rep
1229− ),
1230−
1231− TP_ARGS(rqst, rep),
1232−
1233− TP_STRUCT__entry(
1234− __field(unsigned int, task_id)
1235− __field(unsigned int, client_id)
1236− __field(u32, xid)
1237− __field(const void *, rep)
1238− ),
1239−
1240− TP_fast_assign(
1241− __entry->task_id = rqst->rq_task->tk_pid;
1242− __entry->client_id = rqst->rq_task->tk_client->cl_clid;
1243− __entry->xid = be32_to_cpu(rqst->rq_xid);
1244− __entry->rep = rep;
1245− ),
1246−
1247− TP_printk("task:%u@%u xid=0x%08x rep=%p",
1248− __entry->task_id, __entry->client_id, __entry->xid,
1249− __entry->rep
1250− )
1251−);
1224+DEFINE_CALLBACK_EVENT(call);
1225+DEFINE_CALLBACK_EVENT(reply);
12521226
12531227 /**
12541228 ** Server-side RPC/RDMA events

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t