From: Amir Vadai Date: Tue, 3 Apr 2012 10:52:45 +0000 (+0300) Subject: sdp: add [rt]x_bytes counters to sdpstats X-Git-Tag: v4.1.12-92~264^2~5^2~7 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ddef8636923865a41c1afbb7d7724f6b6b462472;p=users%2Fjedix%2Flinux-maple.git sdp: add [rt]x_bytes counters to sdpstats Those counter shows how many bytes actually rx/tx using SDP sockets. Signed-off-by: Amir Vadai Signed-off-by: Dotan Barak --- diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 02cf8f0e6f427..6213f794e54c3 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -772,6 +772,8 @@ static inline int credit_update_needed(struct sdp_sock *ssk) #define SDPSTATS_MAX_HIST_SIZE 256 struct sdpstats { + u64 rx_bytes; + u64 tx_bytes; u32 post_send[256]; u32 inline_sends; u32 sendmsg_bcopy_segment; diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index c26f6aff6c223..9287003e02b00 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -2018,6 +2018,8 @@ out: err = copied; sdp_dbg_data(sk, "copied: 0x%x\n", copied); + if (copied > 0) + SDPSTATS_COUNTER_ADD(tx_bytes, copied); goto fin; @@ -2442,6 +2444,8 @@ found_fin_ok: got_disconn_in_peek: err = copied; + if (copied > 0) + SDPSTATS_COUNTER_ADD(rx_bytes, copied); out: posts_handler_put(ssk, SDP_RX_ARMING_DELAY); diff --git a/drivers/infiniband/ulp/sdp/sdp_proc.c b/drivers/infiniband/ulp/sdp/sdp_proc.c index e502b37f85815..fa0a9875985aa 100644 --- a/drivers/infiniband/ulp/sdp/sdp_proc.c +++ b/drivers/infiniband/ulp/sdp/sdp_proc.c @@ -314,13 +314,15 @@ static void sdpstats_seq_hist(struct seq_file *seq, char *str, u32 *h, int n, } } -#define SDPSTATS_COUNTER_GET(var) ({ \ - u32 __val = 0; \ +#define _SDPSTATS_COUNTER_GET(var, _type) ({ \ + _type __val = 0; \ unsigned int __i; \ for_each_possible_cpu(__i) \ __val += per_cpu(sdpstats, __i).var; \ __val; \ }) +#define SDPSTATS_COUNTER_GET(var) _SDPSTATS_COUNTER_GET(var, u32) +#define SDPSTATS_COUNTER_GET64(var) _SDPSTATS_COUNTER_GET(var, u64) #define SDPSTATS_HIST_GET(hist, hist_len, sum) ({ \ unsigned int __i; \ @@ -360,6 +362,11 @@ static int sdpstats_seq_show(struct seq_file *seq, void *v) seq_printf(seq, "SDP statistics:\n"); + seq_printf(seq, "rx_bytes\t\t: %llu\n", + SDPSTATS_COUNTER_GET64(rx_bytes)); + seq_printf(seq, "tx_bytes\t\t: %llu\n", + SDPSTATS_COUNTER_GET64(tx_bytes)); + __sdpstats_seq_hist(seq, "sendmsg_seglen", sendmsg_seglen, 1); __sdpstats_seq_hist(seq, "send_size", send_size, 1); __sdpstats_seq_hist(seq, "credits_before_update",