]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: Add detailed ZCopy aborted send statistics
authorAmir Vadai <amirv@mellanox.co.il>
Wed, 24 Feb 2010 08:39:54 +0000 (10:39 +0200)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:04:48 +0000 (05:04 -0700)
Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp.h
drivers/infiniband/ulp/sdp/sdp_proc.c
drivers/infiniband/ulp/sdp/sdp_zcopy.c

index 893e33f974cba5f439dffd5d1371eb9782ea24cb..a457b2bccd00048b9a0c0a81dafcbe1d886f519f 100644 (file)
@@ -703,6 +703,8 @@ struct sdpstats {
        u32 memcpy_count;
        u32 credits_before_update[64];
        u32 zcopy_tx_timeout;
+       u32 zcopy_cross_send;
+       u32 zcopy_tx_aborted;
        u32 zcopy_tx_error;
 };
 
index f7cef1ff1202677c9ac6801fca1a319a3a1060e4..253a287683b544e1e709be471e7a9a53b64240b4 100644 (file)
@@ -313,6 +313,8 @@ static int sdpstats_seq_show(struct seq_file *seq, void *v)
 
        seq_printf(seq, "ZCopy stats:\n");
        seq_printf(seq, "- TX timeout\t\t: %d\n", SDPSTATS_COUNTER_GET(zcopy_tx_timeout));
+       seq_printf(seq, "- TX cross send\t\t: %d\n", SDPSTATS_COUNTER_GET(zcopy_cross_send));
+       seq_printf(seq, "- TX aborted by peer\t\t: %d\n", SDPSTATS_COUNTER_GET(zcopy_tx_aborted));
        seq_printf(seq, "- TX error\t\t: %d\n", SDPSTATS_COUNTER_GET(zcopy_tx_error));
        return 0;
 }
index 6b8c0fe028e96e943c8ed6a29158e3086da05897..e5a59c082d7c558edfd33fc9bea37cfa6120c4f6 100644 (file)
@@ -164,6 +164,7 @@ static int sdp_wait_rdmardcompl(struct sdp_sock *ssk, long *timeo_p,
                        err = -ETIME;
                        tx_sa->abort_flags |= TX_SA_TIMEDOUT;
                        sdp_prf1(sk, NULL, "timeout");
+                       SDPSTATS_COUNTER_INC(zcopy_tx_timeout);
                        break;
                }
 
@@ -176,6 +177,7 @@ static int sdp_wait_rdmardcompl(struct sdp_sock *ssk, long *timeo_p,
 
                if (tx_sa->abort_flags & TX_SA_SENDSM) {
                        sdp_prf1(sk, NULL, "Aborting SrcAvail sending");
+                       SDPSTATS_COUNTER_INC(zcopy_tx_aborted);
                        err = -EAGAIN;
                        break ;
                }
@@ -191,6 +193,7 @@ static int sdp_wait_rdmardcompl(struct sdp_sock *ssk, long *timeo_p,
                        if (ssk->rx_sa) {
                                sdp_dbg_data(sk, "Crossing SrcAvail - aborting this\n");
                                tx_sa->abort_flags |= TX_SA_CROSS_SEND;
+                               SDPSTATS_COUNTER_INC(zcopy_cross_send);
                                err = -ETIME;
                                break ;
                        }
@@ -649,11 +652,6 @@ static int do_sdp_sendmsg_zcopy(struct sock *sk, struct tx_srcavail_state *tx_sa
                        sdp_reset(sk);
                        SDPSTATS_COUNTER_INC(zcopy_tx_error);
                } else if (ssk->qp_active) {
-                       if (!(f & TX_SA_INTRRUPTED)) {
-                               sdp_dbg_data(sk, "abort_flag = 0x%x.\n", f);
-                               SDPSTATS_COUNTER_INC(zcopy_tx_timeout);
-                       }
-
                        sdp_post_srcavail_cancel(sk);
 
                        /* Wait for RdmaRdCompl/SendSM to