@@ -85,6 +85,44 @@ DECLARE_EVENT_CLASS(xprtrdma_rxprt,
85
85
), \
86
86
TP_ARGS(r_xprt))
87
87
88
+ DECLARE_EVENT_CLASS (xprtrdma_connect_class ,
89
+ TP_PROTO (
90
+ const struct rpcrdma_xprt * r_xprt ,
91
+ int rc
92
+ ),
93
+
94
+ TP_ARGS (r_xprt , rc ),
95
+
96
+ TP_STRUCT__entry (
97
+ __field (const void * , r_xprt )
98
+ __field (int , rc )
99
+ __field (int , connect_status )
100
+ __string (addr , rpcrdma_addrstr (r_xprt ))
101
+ __string (port , rpcrdma_portstr (r_xprt ))
102
+ ),
103
+
104
+ TP_fast_assign (
105
+ __entry -> r_xprt = r_xprt ;
106
+ __entry -> rc = rc ;
107
+ __entry -> connect_status = r_xprt -> rx_ep .rep_connected ;
108
+ __assign_str (addr , rpcrdma_addrstr (r_xprt ));
109
+ __assign_str (port , rpcrdma_portstr (r_xprt ));
110
+ ),
111
+
112
+ TP_printk ("peer=[%s]:%s r_xprt=%p: rc=%d connect status=%d" ,
113
+ __get_str (addr ), __get_str (port ), __entry -> r_xprt ,
114
+ __entry -> rc , __entry -> connect_status
115
+ )
116
+ );
117
+
118
+ #define DEFINE_CONN_EVENT (name ) \
119
+ DEFINE_EVENT(xprtrdma_connect_class, xprtrdma_##name, \
120
+ TP_PROTO( \
121
+ const struct rpcrdma_xprt *r_xprt, \
122
+ int rc \
123
+ ), \
124
+ TP_ARGS(r_xprt, rc))
125
+
88
126
DECLARE_EVENT_CLASS (xprtrdma_rdch_event ,
89
127
TP_PROTO (
90
128
const struct rpc_task * task ,
@@ -333,47 +371,81 @@ TRACE_EVENT(xprtrdma_cm_event,
333
371
)
334
372
);
335
373
336
- TRACE_EVENT (xprtrdma_disconnect ,
374
+ TRACE_EVENT (xprtrdma_inline_thresh ,
337
375
TP_PROTO (
338
- const struct rpcrdma_xprt * r_xprt ,
339
- int status
376
+ const struct rpcrdma_xprt * r_xprt
340
377
),
341
378
342
- TP_ARGS (r_xprt , status ),
379
+ TP_ARGS (r_xprt ),
343
380
344
381
TP_STRUCT__entry (
345
382
__field (const void * , r_xprt )
346
- __field (int , status )
347
- __field (int , connected )
383
+ __field (unsigned int , inline_send )
384
+ __field (unsigned int , inline_recv )
385
+ __field (unsigned int , max_send )
386
+ __field (unsigned int , max_recv )
348
387
__string (addr , rpcrdma_addrstr (r_xprt ))
349
388
__string (port , rpcrdma_portstr (r_xprt ))
350
389
),
351
390
352
391
TP_fast_assign (
392
+ const struct rpcrdma_ep * ep = & r_xprt -> rx_ep ;
393
+
353
394
__entry -> r_xprt = r_xprt ;
354
- __entry -> status = status ;
355
- __entry -> connected = r_xprt -> rx_ep .rep_connected ;
395
+ __entry -> inline_send = ep -> rep_inline_send ;
396
+ __entry -> inline_recv = ep -> rep_inline_recv ;
397
+ __entry -> max_send = ep -> rep_max_inline_send ;
398
+ __entry -> max_recv = ep -> rep_max_inline_recv ;
356
399
__assign_str (addr , rpcrdma_addrstr (r_xprt ));
357
400
__assign_str (port , rpcrdma_portstr (r_xprt ));
358
401
),
359
402
360
- TP_printk ("peer=[%s]:%s r_xprt=%p: status=%d %sconnected " ,
361
- __get_str (addr ), __get_str (port ),
362
- __entry -> r_xprt , __entry -> status ,
363
- __entry -> connected == 1 ? "still " : "dis"
403
+ TP_printk ("peer=[%s]:%s r_xprt=%p neg send/recv=%u/%u, calc send/recv=%u/%u " ,
404
+ __get_str (addr ), __get_str (port ), __entry -> r_xprt ,
405
+ __entry -> inline_send , __entry -> inline_recv ,
406
+ __entry -> max_send , __entry -> max_recv
364
407
)
365
408
);
366
409
367
- DEFINE_RXPRT_EVENT (xprtrdma_conn_start );
368
- DEFINE_RXPRT_EVENT (xprtrdma_conn_tout );
410
+ DEFINE_CONN_EVENT (connect );
411
+ DEFINE_CONN_EVENT (disconnect );
412
+
369
413
DEFINE_RXPRT_EVENT (xprtrdma_create );
370
414
DEFINE_RXPRT_EVENT (xprtrdma_op_destroy );
371
415
DEFINE_RXPRT_EVENT (xprtrdma_remove );
372
416
DEFINE_RXPRT_EVENT (xprtrdma_reinsert );
373
- DEFINE_RXPRT_EVENT (xprtrdma_reconnect );
374
417
DEFINE_RXPRT_EVENT (xprtrdma_op_inject_dsc );
375
418
DEFINE_RXPRT_EVENT (xprtrdma_op_close );
376
- DEFINE_RXPRT_EVENT (xprtrdma_op_connect );
419
+ DEFINE_RXPRT_EVENT (xprtrdma_op_setport );
420
+
421
+ TRACE_EVENT (xprtrdma_op_connect ,
422
+ TP_PROTO (
423
+ const struct rpcrdma_xprt * r_xprt ,
424
+ unsigned long delay
425
+ ),
426
+
427
+ TP_ARGS (r_xprt , delay ),
428
+
429
+ TP_STRUCT__entry (
430
+ __field (const void * , r_xprt )
431
+ __field (unsigned long , delay )
432
+ __string (addr , rpcrdma_addrstr (r_xprt ))
433
+ __string (port , rpcrdma_portstr (r_xprt ))
434
+ ),
435
+
436
+ TP_fast_assign (
437
+ __entry -> r_xprt = r_xprt ;
438
+ __entry -> delay = delay ;
439
+ __assign_str (addr , rpcrdma_addrstr (r_xprt ));
440
+ __assign_str (port , rpcrdma_portstr (r_xprt ));
441
+ ),
442
+
443
+ TP_printk ("peer=[%s]:%s r_xprt=%p delay=%lu" ,
444
+ __get_str (addr ), __get_str (port ), __entry -> r_xprt ,
445
+ __entry -> delay
446
+ )
447
+ );
448
+
377
449
378
450
TRACE_EVENT (xprtrdma_op_set_cto ,
379
451
TP_PROTO (
@@ -532,6 +604,8 @@ DEFINE_WRCH_EVENT(write);
532
604
DEFINE_WRCH_EVENT (reply );
533
605
534
606
TRACE_DEFINE_ENUM (rpcrdma_noch );
607
+ TRACE_DEFINE_ENUM (rpcrdma_noch_pullup );
608
+ TRACE_DEFINE_ENUM (rpcrdma_noch_mapped );
535
609
TRACE_DEFINE_ENUM (rpcrdma_readch );
536
610
TRACE_DEFINE_ENUM (rpcrdma_areadch );
537
611
TRACE_DEFINE_ENUM (rpcrdma_writech );
@@ -540,6 +614,8 @@ TRACE_DEFINE_ENUM(rpcrdma_replych);
540
614
#define xprtrdma_show_chunktype (x ) \
541
615
__print_symbolic(x, \
542
616
{ rpcrdma_noch, "inline" }, \
617
+ { rpcrdma_noch_pullup, "pullup" }, \
618
+ { rpcrdma_noch_mapped, "mapped" }, \
543
619
{ rpcrdma_readch, "read list" }, \
544
620
{ rpcrdma_areadch, "*read list" }, \
545
621
{ rpcrdma_writech, "write list" }, \
@@ -667,9 +743,8 @@ TRACE_EVENT(xprtrdma_post_send,
667
743
__entry -> client_id = rqst -> rq_task -> tk_client ?
668
744
rqst -> rq_task -> tk_client -> cl_clid : -1 ;
669
745
__entry -> req = req ;
670
- __entry -> num_sge = req -> rl_sendctx -> sc_wr .num_sge ;
671
- __entry -> signaled = req -> rl_sendctx -> sc_wr .send_flags &
672
- IB_SEND_SIGNALED ;
746
+ __entry -> num_sge = req -> rl_wr .num_sge ;
747
+ __entry -> signaled = req -> rl_wr .send_flags & IB_SEND_SIGNALED ;
673
748
__entry -> status = status ;
674
749
),
675
750
@@ -735,6 +810,31 @@ TRACE_EVENT(xprtrdma_post_recvs,
735
810
)
736
811
);
737
812
813
+ TRACE_EVENT (xprtrdma_post_linv ,
814
+ TP_PROTO (
815
+ const struct rpcrdma_req * req ,
816
+ int status
817
+ ),
818
+
819
+ TP_ARGS (req , status ),
820
+
821
+ TP_STRUCT__entry (
822
+ __field (const void * , req )
823
+ __field (int , status )
824
+ __field (u32 , xid )
825
+ ),
826
+
827
+ TP_fast_assign (
828
+ __entry -> req = req ;
829
+ __entry -> status = status ;
830
+ __entry -> xid = be32_to_cpu (req -> rl_slot .rq_xid );
831
+ ),
832
+
833
+ TP_printk ("req=%p xid=0x%08x status=%d" ,
834
+ __entry -> req , __entry -> xid , __entry -> status
835
+ )
836
+ );
837
+
738
838
/**
739
839
** Completion events
740
840
**/
@@ -1021,66 +1121,32 @@ DEFINE_REPLY_EVENT(xprtrdma_reply_hdr);
1021
1121
TRACE_EVENT (xprtrdma_fixup ,
1022
1122
TP_PROTO (
1023
1123
const struct rpc_rqst * rqst ,
1024
- int len ,
1025
- int hdrlen
1124
+ unsigned long fixup
1026
1125
),
1027
1126
1028
- TP_ARGS (rqst , len , hdrlen ),
1127
+ TP_ARGS (rqst , fixup ),
1029
1128
1030
1129
TP_STRUCT__entry (
1031
1130
__field (unsigned int , task_id )
1032
1131
__field (unsigned int , client_id )
1033
- __field (const void * , base )
1034
- __field (int , len )
1035
- __field (int , hdrlen )
1036
- ),
1037
-
1038
- TP_fast_assign (
1039
- __entry -> task_id = rqst -> rq_task -> tk_pid ;
1040
- __entry -> client_id = rqst -> rq_task -> tk_client -> cl_clid ;
1041
- __entry -> base = rqst -> rq_rcv_buf .head [0 ].iov_base ;
1042
- __entry -> len = len ;
1043
- __entry -> hdrlen = hdrlen ;
1044
- ),
1045
-
1046
- TP_printk ("task:%u@%u base=%p len=%d hdrlen=%d" ,
1047
- __entry -> task_id , __entry -> client_id ,
1048
- __entry -> base , __entry -> len , __entry -> hdrlen
1049
- )
1050
- );
1051
-
1052
- TRACE_EVENT (xprtrdma_fixup_pg ,
1053
- TP_PROTO (
1054
- const struct rpc_rqst * rqst ,
1055
- int pageno ,
1056
- const void * pos ,
1057
- int len ,
1058
- int curlen
1059
- ),
1060
-
1061
- TP_ARGS (rqst , pageno , pos , len , curlen ),
1062
-
1063
- TP_STRUCT__entry (
1064
- __field (unsigned int , task_id )
1065
- __field (unsigned int , client_id )
1066
- __field (const void * , pos )
1067
- __field (int , pageno )
1068
- __field (int , len )
1069
- __field (int , curlen )
1132
+ __field (unsigned long , fixup )
1133
+ __field (size_t , headlen )
1134
+ __field (unsigned int , pagelen )
1135
+ __field (size_t , taillen )
1070
1136
),
1071
1137
1072
1138
TP_fast_assign (
1073
1139
__entry -> task_id = rqst -> rq_task -> tk_pid ;
1074
1140
__entry -> client_id = rqst -> rq_task -> tk_client -> cl_clid ;
1075
- __entry -> pos = pos ;
1076
- __entry -> pageno = pageno ;
1077
- __entry -> len = len ;
1078
- __entry -> curlen = curlen ;
1141
+ __entry -> fixup = fixup ;
1142
+ __entry -> headlen = rqst -> rq_rcv_buf . head [ 0 ]. iov_len ;
1143
+ __entry -> pagelen = rqst -> rq_rcv_buf . page_len ;
1144
+ __entry -> taillen = rqst -> rq_rcv_buf . tail [ 0 ]. iov_len ;
1079
1145
),
1080
1146
1081
- TP_printk ("task:%u@%u pageno=%d pos=%p len=%d curlen=%d " ,
1082
- __entry -> task_id , __entry -> client_id ,
1083
- __entry -> pageno , __entry -> pos , __entry -> len , __entry -> curlen
1147
+ TP_printk ("task:%u@%u fixup=%lu xdr=%zu/%u/%zu " ,
1148
+ __entry -> task_id , __entry -> client_id , __entry -> fixup ,
1149
+ __entry -> headlen , __entry -> pagelen , __entry -> taillen
1084
1150
)
1085
1151
);
1086
1152
0 commit comments