From: Amir Vadai Date: Wed, 24 Feb 2010 08:39:54 +0000 (+0200) Subject: sdp: Add detailed ZCopy aborted send statistics X-Git-Tag: v4.1.12-92~264^2~5^2~215 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=1038481f32764029f8240c60f76939129ba79540;p=users%2Fjedix%2Flinux-maple.git sdp: Add detailed ZCopy aborted send statistics Signed-off-by: Amir Vadai --- diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 893e33f974cba..a457b2bccd000 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -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; }; diff --git a/drivers/infiniband/ulp/sdp/sdp_proc.c b/drivers/infiniband/ulp/sdp/sdp_proc.c index f7cef1ff12026..253a287683b54 100644 --- a/drivers/infiniband/ulp/sdp/sdp_proc.c +++ b/drivers/infiniband/ulp/sdp/sdp_proc.c @@ -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; } diff --git a/drivers/infiniband/ulp/sdp/sdp_zcopy.c b/drivers/infiniband/ulp/sdp/sdp_zcopy.c index 6b8c0fe028e96..e5a59c082d7c5 100644 --- a/drivers/infiniband/ulp/sdp/sdp_zcopy.c +++ b/drivers/infiniband/ulp/sdp/sdp_zcopy.c @@ -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