From 46d527f6642874ac7a3cdc9da48012c24f17ee24 Mon Sep 17 00:00:00 2001 From: Amir Vadai Date: Sun, 6 Jun 2010 12:23:55 +0300 Subject: [PATCH] sdp: cpu affinity in sdpstats Signed-off-by: Amir Vadai --- drivers/infiniband/ulp/sdp/sdp.h | 2 ++ drivers/infiniband/ulp/sdp/sdp_main.c | 1 + drivers/infiniband/ulp/sdp/sdp_proc.c | 26 +++++++++++++++++++++++++- drivers/infiniband/ulp/sdp/sdp_rx.c | 2 ++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 0052be0606ea..88fbb1d1edea 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -719,6 +719,7 @@ struct sdpstats { u32 sendmsg_bzcopy_segment; u32 sendmsg_zcopy_segment; u32 sendmsg; + u32 recvmsg; u32 post_send_credits; u32 sendmsg_nagle_skip; u32 sendmsg_seglen[25]; @@ -726,6 +727,7 @@ struct sdpstats { u32 post_recv; u32 rx_int_count; u32 tx_int_count; + u32 rx_wq; u32 bzcopy_poll_miss; u32 send_wait_for_mem; u32 send_miss_no_credits; diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 70679d627693..4babda5e5191 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -2130,6 +2130,7 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, int rc; int avail_bytes_count = 0; /* Could be inlined in skb */ /* or advertised for RDMA */ + SDPSTATS_COUNTER_INC(recvmsg); lock_sock(sk); sdp_dbg_data(sk, "iovlen: %ld iov_len: 0x%lx flags: 0x%x peek: 0x%x\n", diff --git a/drivers/infiniband/ulp/sdp/sdp_proc.c b/drivers/infiniband/ulp/sdp/sdp_proc.c index d10ed6e9bf8f..5e5360fc7feb 100644 --- a/drivers/infiniband/ulp/sdp/sdp_proc.c +++ b/drivers/infiniband/ulp/sdp/sdp_proc.c @@ -209,12 +209,19 @@ static void sdpstats_seq_hist(struct seq_file *seq, char *str, u32 *h, int n, { int i; u32 max = 0; + int first = -1, last = n - 1; seq_printf(seq, "%s:\n", str); for (i = 0; i < n; i++) { if (h[i] > max) max = h[i]; + + if (first == -1 && h[i]) + first = i; + + if (h[i]) + last = i; } if (max == 0) { @@ -222,7 +229,7 @@ static void sdpstats_seq_hist(struct seq_file *seq, char *str, u32 *h, int n, return; } - for (i = 0; i < n; i++) { + for (i = first; i <= last; i++) { char s[51]; int j = 50 * h[i] / max; int val = is_log ? (i == n-1 ? 0 : 1<isk.sk; + SDPSTATS_COUNTER_INC(rx_wq); + sdp_prf(sk, NULL, "%s", __func__); if (unlikely(!ssk->qp)) { -- 2.50.1