History

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

NFS-over-RDMA client updates for Linux 4.18 Stable patches: - xprtrdma: Return -ENOBUFS when no pages are available New features: - Add ->alloc_slot() and ->free_slot() functions Bugfixes and cleanups: - Add missing SPDX tags to some files - Try to fail mount quickly if client has no RDMA devices - Create transport IDs in the correct network namespace - Fix max_send_wr computation - Clean up receive tracepoints - Refactor receive handling - Remove unused functions

Trond Myklebust committed 8 years ago

Commit fcda3d52 parents 3f0b3cf 11d0ac116 files · +359 −355Browse files

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

Unified · Split

include/trace/events/rpcrdma.h+53−23
@@ -528,24 +528,54 @@ TRACE_EVENT(xprtrdma_post_send, · 527 unmodified lines
528528
529529 TRACE_EVENT(xprtrdma_post_recv,
530530 TP_PROTO(
531− const struct rpcrdma_rep *rep,
531+ const struct ib_cqe *cqe
532+ ),
533+
534+ TP_ARGS(cqe),
535+
536+ TP_STRUCT__entry(
537+ __field(const void *, cqe)
538+ ),
539+
540+ TP_fast_assign(
541+ __entry->cqe = cqe;
542+ ),
543+
544+ TP_printk("cqe=%p",
545+ __entry->cqe
546+ )
547+);
548+
549+TRACE_EVENT(xprtrdma_post_recvs,
550+ TP_PROTO(
551+ const struct rpcrdma_xprt *r_xprt,
552+ unsigned int count,
532553 int status
533554 ),
534555
535− TP_ARGS(rep, status),
556+ TP_ARGS(r_xprt, count, status),
536557
537558 TP_STRUCT__entry(
538− __field(const void *, rep)
559+ __field(const void *, r_xprt)
560+ __field(unsigned int, count)
539561 __field(int, status)
562+ __field(int, posted)
563+ __string(addr, rpcrdma_addrstr(r_xprt))
564+ __string(port, rpcrdma_portstr(r_xprt))
540565 ),
541566
542567 TP_fast_assign(
543− __entry->rep = rep;
568+ __entry->r_xprt = r_xprt;
569+ __entry->count = count;
544570 __entry->status = status;
571+ __entry->posted = r_xprt->rx_buf.rb_posted_receives;
572+ __assign_str(addr, rpcrdma_addrstr(r_xprt));
573+ __assign_str(port, rpcrdma_portstr(r_xprt));
545574 ),
546575
547− TP_printk("rep=%p status=%d",
548− __entry->rep, __entry->status
576+ TP_printk("peer=[%s]:%s r_xprt=%p: %u new recvs, %d active (rc %d)",
577+ __get_str(addr), __get_str(port), __entry->r_xprt,
578+ __entry->count, __entry->posted, __entry->status
549579 )
550580 );
551581
@@ -584,28 +614,32 @@ TRACE_EVENT(xprtrdma_wc_send, · 32 unmodified lines
584614
585615 TRACE_EVENT(xprtrdma_wc_receive,
586616 TP_PROTO(
587− const struct rpcrdma_rep *rep,
588617 const struct ib_wc *wc
589618 ),
590619
591− TP_ARGS(rep, wc),
620+ TP_ARGS(wc),
592621
593622 TP_STRUCT__entry(
594− __field(const void *, rep)
595− __field(unsigned int, byte_len)
623+ __field(const void *, cqe)
624+ __field(u32, byte_len)
596625 __field(unsigned int, status)
597− __field(unsigned int, vendor_err)
626+ __field(u32, vendor_err)
598627 ),
599628
600629 TP_fast_assign(
601− __entry->rep = rep;
602− __entry->byte_len = wc->byte_len;
630+ __entry->cqe = wc->wr_cqe;
603631 __entry->status = wc->status;
604− __entry->vendor_err = __entry->status ? wc->vendor_err : 0;
632+ if (wc->status) {
633+ __entry->byte_len = 0;
634+ __entry->vendor_err = wc->vendor_err;
635+ } else {
636+ __entry->byte_len = wc->byte_len;
637+ __entry->vendor_err = 0;
638+ }
605639 ),
606640
607− TP_printk("rep=%p, %u bytes: %s (%u/0x%x)",
608− __entry->rep, __entry->byte_len,
641+ TP_printk("cqe=%p %u bytes: %s (%u/0x%x)",
642+ __entry->cqe, __entry->byte_len,
609643 rdma_show_wc_status(__entry->status),
610644 __entry->status, __entry->vendor_err
611645 )
@@ -616,6 +650,7 @@ DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li); · 4 unmodified lines
616650 DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li_wake);
617651
618652 DEFINE_MR_EVENT(xprtrdma_localinv);
653+DEFINE_MR_EVENT(xprtrdma_dma_map);
619654 DEFINE_MR_EVENT(xprtrdma_dma_unmap);
620655 DEFINE_MR_EVENT(xprtrdma_remoteinv);
621656 DEFINE_MR_EVENT(xprtrdma_recover_mr);
@@ -799,7 +834,6 @@ TRACE_EVENT(xprtrdma_allocate, · 177 unmodified lines
799834 __field(unsigned int, task_id)
800835 __field(unsigned int, client_id)
801836 __field(const void *, req)
802− __field(const void *, rep)
803837 __field(size_t, callsize)
804838 __field(size_t, rcvsize)
805839 ),
@@ -808,15 +842,13 @@ TRACE_EVENT(xprtrdma_allocate, · 2 unmodified lines
808842 __entry->task_id = task->tk_pid;
809843 __entry->client_id = task->tk_client->cl_clid;
810844 __entry->req = req;
811− __entry->rep = req ? req->rl_reply : NULL;
812845 __entry->callsize = task->tk_rqstp->rq_callsize;
813846 __entry->rcvsize = task->tk_rqstp->rq_rcvsize;
814847 ),
815848
816− TP_printk("task:%u@%u req=%p rep=%p (%zu, %zu)",
849+ TP_printk("task:%u@%u req=%p (%zu, %zu)",
817850 __entry->task_id, __entry->client_id,
818− __entry->req, __entry->rep,
819− __entry->callsize, __entry->rcvsize
851+ __entry->req, __entry->callsize, __entry->rcvsize
820852 )
821853 );
822854
@@ -848,8 +880,6 @@ TRACE_EVENT(xprtrdma_rpc_done, · 25 unmodified lines
848880 )
849881 );
850882
851−DEFINE_RXPRT_EVENT(xprtrdma_noreps);
852−
853883 /**
854884 ** Callback events
855885 **/