From: Amir Vadai Date: Wed, 30 Dec 2009 08:10:09 +0000 (+0200) Subject: sdp: added statistics instead of prints X-Git-Tag: v4.1.12-92~264^2~5^2~223 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d6a671e962887b2346d4a5ec8765b7f3f2ba790e;p=users%2Fjedix%2Flinux-maple.git sdp: added statistics instead of prints Signed-off-by: Amir Vadai --- diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 534c2761cfbac..6a648c7afb285 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -694,6 +694,8 @@ struct sdpstats { u32 tx_poll_busy; u32 memcpy_count; u32 credits_before_update[64]; + u32 zcopy_tx_timeout; + u32 zcopy_tx_error; }; static inline void sdpstats_hist(u32 *h, u32 val, u32 maxidx, int is_log) diff --git a/drivers/infiniband/ulp/sdp/sdp_proc.c b/drivers/infiniband/ulp/sdp/sdp_proc.c index 23f099c1f82be..290b1edc9a3d1 100644 --- a/drivers/infiniband/ulp/sdp/sdp_proc.c +++ b/drivers/infiniband/ulp/sdp/sdp_proc.c @@ -285,6 +285,10 @@ static int sdpstats_seq_show(struct seq_file *seq, void *v) seq_printf(seq, "CQ stats:\n"); seq_printf(seq, "- RX interrupts\t\t: %d\n", sdpstats.rx_int_count); seq_printf(seq, "- TX interrupts\t\t: %d\n", sdpstats.tx_int_count); + + seq_printf(seq, "ZCopy stats:\n"); + seq_printf(seq, "- TX timeout\t\t: %d\n", sdpstats.zcopy_tx_timeout); + seq_printf(seq, "- TX error\t\t: %d\n", sdpstats.zcopy_tx_error); return 0; } diff --git a/drivers/infiniband/ulp/sdp/sdp_zcopy.c b/drivers/infiniband/ulp/sdp/sdp_zcopy.c index 69ad2dbc4307a..3926697607911 100644 --- a/drivers/infiniband/ulp/sdp/sdp_zcopy.c +++ b/drivers/infiniband/ulp/sdp/sdp_zcopy.c @@ -169,7 +169,7 @@ static int sdp_wait_rdmardcompl(struct sdp_sock *ssk, long *timeo_p, else if (tx_sa->bytes_acked > tx_sa->bytes_sent) { err = -EINVAL; - sdp_warn(sk, "acked bytes > sent bytes\n"); + sdp_dbg_data(sk, "acked bytes > sent bytes\n"); tx_sa->abort_flags |= TX_SA_ERROR; break; } @@ -249,7 +249,7 @@ static void sdp_wait_rdma_wr_finished(struct sdp_sock *ssk) } if (!ssk->qp_active) { - sdp_warn(sk, "QP destroyed\n"); + sdp_dbg_data(sk, "QP destroyed\n"); break; } @@ -552,7 +552,7 @@ int sdp_rdma_to_iovec(struct sock *sk, struct iovec *iov, struct sk_buff *skb, sdp_prf(sk, skb, "Finished waiting(rc=%d)", rc); if (!ssk->qp_active) { - sdp_warn(sk, "QP destroyed during RDMA read\n"); + sdp_dbg_data(sk, "QP destroyed during RDMA read\n"); rc = -EPIPE; goto err_post_send; } @@ -641,9 +641,12 @@ static int do_sdp_sendmsg_zcopy(struct sock *sk, struct tx_srcavail_state *tx_sa } else if (f & TX_SA_ERROR) { sdp_dbg_data(sk, "SrcAvail error completion\n"); sdp_reset(sk); + SDPSTATS_COUNTER_INC(zcopy_tx_error); } else if (ssk->qp_active) { - if (!(f & TX_SA_INTRRUPTED)) - sdp_warn(sk, "abort_flag = 0x%x.\n", f); + 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); @@ -654,7 +657,7 @@ static int do_sdp_sendmsg_zcopy(struct sock *sk, struct tx_srcavail_state *tx_sa sdp_wait_rdmardcompl(ssk, timeo, 1); sdp_dbg_data(sk, "finished waiting\n"); } else { - sdp_warn(sk, "QP was destroyed while waiting\n"); + sdp_dbg_data(sk, "QP was destroyed while waiting\n"); } } else { sdp_dbg_data(sk, "got RdmaRdCompl\n");