aboutsummaryrefslogtreecommitdiffstats
path: root/include/trace
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2018-06-04 18:57:13 -0400
committerTrond Myklebust <trond.myklebust@hammerspace.com>2018-06-04 18:57:13 -0400
commitfcda3d5d221bbfc469415b0fa7dc4eb87d90d955 (patch)
treea428ad27d04527a1a17973262d00b35f037eecc3 /include/trace
parent3f0b3cf46e0542ac4b4241c579b944b755d11b67 (diff)
parent11d0ac16b02eab8cda32efcb51bfab452dab760b (diff)
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
Diffstat (limited to 'include/trace')
-rw-r--r--include/trace/events/rpcrdma.h76
1 files changed, 53 insertions, 23 deletions
diff --git a/include/trace/events/rpcrdma.h b/include/trace/events/rpcrdma.h
index 50ed3f8bf534..c4494a2b3ecd 100644
--- a/include/trace/events/rpcrdma.h
+++ b/include/trace/events/rpcrdma.h
@@ -528,24 +528,54 @@ TRACE_EVENT(xprtrdma_post_send,
528 528
529TRACE_EVENT(xprtrdma_post_recv, 529TRACE_EVENT(xprtrdma_post_recv,
530 TP_PROTO( 530 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
549TRACE_EVENT(xprtrdma_post_recvs,
550 TP_PROTO(
551 const struct rpcrdma_xprt *r_xprt,
552 unsigned int count,
532 int status 553 int status
533 ), 554 ),
534 555
535 TP_ARGS(rep, status), 556 TP_ARGS(r_xprt, count, status),
536 557
537 TP_STRUCT__entry( 558 TP_STRUCT__entry(
538 __field(const void *, rep) 559 __field(const void *, r_xprt)
560 __field(unsigned int, count)
539 __field(int, status) 561 __field(int, status)
562 __field(int, posted)
563 __string(addr, rpcrdma_addrstr(r_xprt))
564 __string(port, rpcrdma_portstr(r_xprt))
540 ), 565 ),
541 566
542 TP_fast_assign( 567 TP_fast_assign(
543 __entry->rep = rep; 568 __entry->r_xprt = r_xprt;
569 __entry->count = count;
544 __entry->status = status; 570 __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));
545 ), 574 ),
546 575
547 TP_printk("rep=%p status=%d", 576 TP_printk("peer=[%s]:%s r_xprt=%p: %u new recvs, %d active (rc %d)",
548 __entry->rep, __entry->status 577 __get_str(addr), __get_str(port), __entry->r_xprt,
578 __entry->count, __entry->posted, __entry->status
549 ) 579 )
550); 580);
551 581
@@ -584,28 +614,32 @@ TRACE_EVENT(xprtrdma_wc_send,
584 614
585TRACE_EVENT(xprtrdma_wc_receive, 615TRACE_EVENT(xprtrdma_wc_receive,
586 TP_PROTO( 616 TP_PROTO(
587 const struct rpcrdma_rep *rep,
588 const struct ib_wc *wc 617 const struct ib_wc *wc
589 ), 618 ),
590 619
591 TP_ARGS(rep, wc), 620 TP_ARGS(wc),
592 621
593 TP_STRUCT__entry( 622 TP_STRUCT__entry(
594 __field(const void *, rep) 623 __field(const void *, cqe)
595 __field(unsigned int, byte_len) 624 __field(u32, byte_len)
596 __field(unsigned int, status) 625 __field(unsigned int, status)
597 __field(unsigned int, vendor_err) 626 __field(u32, vendor_err)
598 ), 627 ),
599 628
600 TP_fast_assign( 629 TP_fast_assign(
601 __entry->rep = rep; 630 __entry->cqe = wc->wr_cqe;
602 __entry->byte_len = wc->byte_len;
603 __entry->status = wc->status; 631 __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 }
605 ), 639 ),
606 640
607 TP_printk("rep=%p, %u bytes: %s (%u/0x%x)", 641 TP_printk("cqe=%p %u bytes: %s (%u/0x%x)",
608 __entry->rep, __entry->byte_len, 642 __entry->cqe, __entry->byte_len,
609 rdma_show_wc_status(__entry->status), 643 rdma_show_wc_status(__entry->status),
610 __entry->status, __entry->vendor_err 644 __entry->status, __entry->vendor_err
611 ) 645 )
@@ -616,6 +650,7 @@ DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li);
616DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li_wake); 650DEFINE_FRWR_DONE_EVENT(xprtrdma_wc_li_wake);
617 651
618DEFINE_MR_EVENT(xprtrdma_localinv); 652DEFINE_MR_EVENT(xprtrdma_localinv);
653DEFINE_MR_EVENT(xprtrdma_dma_map);
619DEFINE_MR_EVENT(xprtrdma_dma_unmap); 654DEFINE_MR_EVENT(xprtrdma_dma_unmap);
620DEFINE_MR_EVENT(xprtrdma_remoteinv); 655DEFINE_MR_EVENT(xprtrdma_remoteinv);
621DEFINE_MR_EVENT(xprtrdma_recover_mr); 656DEFINE_MR_EVENT(xprtrdma_recover_mr);
@@ -799,7 +834,6 @@ TRACE_EVENT(xprtrdma_allocate,
799 __field(unsigned int, task_id) 834 __field(unsigned int, task_id)
800 __field(unsigned int, client_id) 835 __field(unsigned int, client_id)
801 __field(const void *, req) 836 __field(const void *, req)
802 __field(const void *, rep)
803 __field(size_t, callsize) 837 __field(size_t, callsize)
804 __field(size_t, rcvsize) 838 __field(size_t, rcvsize)
805 ), 839 ),
@@ -808,15 +842,13 @@ TRACE_EVENT(xprtrdma_allocate,
808 __entry->task_id = task->tk_pid; 842 __entry->task_id = task->tk_pid;
809 __entry->client_id = task->tk_client->cl_clid; 843 __entry->client_id = task->tk_client->cl_clid;
810 __entry->req = req; 844 __entry->req = req;
811 __entry->rep = req ? req->rl_reply : NULL;
812 __entry->callsize = task->tk_rqstp->rq_callsize; 845 __entry->callsize = task->tk_rqstp->rq_callsize;
813 __entry->rcvsize = task->tk_rqstp->rq_rcvsize; 846 __entry->rcvsize = task->tk_rqstp->rq_rcvsize;
814 ), 847 ),
815 848
816 TP_printk("task:%u@%u req=%p rep=%p (%zu, %zu)", 849 TP_printk("task:%u@%u req=%p (%zu, %zu)",
817 __entry->task_id, __entry->client_id, 850 __entry->task_id, __entry->client_id,
818 __entry->req, __entry->rep, 851 __entry->req, __entry->callsize, __entry->rcvsize
819 __entry->callsize, __entry->rcvsize
820 ) 852 )
821); 853);
822 854
@@ -848,8 +880,6 @@ TRACE_EVENT(xprtrdma_rpc_done,
848 ) 880 )
849); 881);
850 882
851DEFINE_RXPRT_EVENT(xprtrdma_noreps);
852
853/** 883/**
854 ** Callback events 884 ** Callback events
855 **/ 885 **/