From: Eldad Zinger Date: Sun, 15 Aug 2010 07:40:02 +0000 (+0300) Subject: sdp: added the ability to use sdpprf for any debug message X-Git-Tag: v4.1.12-92~264^2~5^2~115 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=3a845eb87cdd6e53ce50f19e1b25cdf8697f0598;p=users%2Fjedix%2Flinux-maple.git sdp: added the ability to use sdpprf for any debug message Signed-off-by: Eldad Zinger --- diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 4439b7b0b49cc..8390f37f75a7a 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -515,10 +515,10 @@ static inline int _sdp_exch_state(const char *func, int line, struct sock *sk, sdp_state_str(state), from_states); if ((1 << sk->sk_state) & ~from_states) { - sdp_warn(sk, "trying to exchange state from unexpected state " - "%s to state %s. expected states: 0x%x\n", - sdp_state_str(sk->sk_state), sdp_state_str(state), - from_states); + sdp_warn(sk, "%s:%d: trying to exchange state from unexpected " + "state %s to state %s. expected states: 0x%x\n", + func, line, sdp_state_str(sk->sk_state), + sdp_state_str(state), from_states); } old = sk->sk_state; diff --git a/drivers/infiniband/ulp/sdp/sdp_bcopy.c b/drivers/infiniband/ulp/sdp/sdp_bcopy.c index 3fba26203f618..fe00c838771c6 100644 --- a/drivers/infiniband/ulp/sdp/sdp_bcopy.c +++ b/drivers/infiniband/ulp/sdp/sdp_bcopy.c @@ -96,6 +96,7 @@ void _dump_packet(const char *func, int line, struct sock *sk, char *str, } buf[len] = 0; _sdp_printk(func, line, KERN_WARNING, sk, "%s: %s\n", str, buf); + _sdp_prf(sk, skb, func, line, "%s: %s", str, buf); } #endif diff --git a/drivers/infiniband/ulp/sdp/sdp_cma.c b/drivers/infiniband/ulp/sdp/sdp_cma.c index 6cc6a7cd6c7f1..e5082b76561ad 100644 --- a/drivers/infiniband/ulp/sdp/sdp_cma.c +++ b/drivers/infiniband/ulp/sdp/sdp_cma.c @@ -324,8 +324,8 @@ int sdp_cma_handler(struct rdma_cm_id *id, struct rdma_cm_event *event) sk = id->context; if (!sk) { - sdp_dbg(NULL, "cm_id is being torn down, event %d\n", - event->event); + sdp_dbg(NULL, "cm_id is being torn down, event %s\n", + rdma_cm_event_str(event->event)); return event->event == RDMA_CM_EVENT_CONNECT_REQUEST ? -EINVAL : 0; } @@ -483,7 +483,7 @@ int sdp_cma_handler(struct rdma_cm_id *id, struct rdma_cm_event *event) break; } - sdp_dbg(sk, "%s event %d handled\n", __func__, event->event); + sdp_dbg(sk, "event: %s handled\n", rdma_cm_event_str(event->event)); if (rc && sdp_sk(sk)->id == id) { child = sk; @@ -496,7 +496,8 @@ int sdp_cma_handler(struct rdma_cm_id *id, struct rdma_cm_event *event) release_sock(sk); - sdp_dbg(sk, "event %d done. status %d\n", event->event, rc); + sdp_dbg(sk, "event: %s done. status %d\n", + rdma_cm_event_str(event->event), rc); if (parent) { lock_sock(parent); diff --git a/drivers/infiniband/ulp/sdp/sdp_dbg.h b/drivers/infiniband/ulp/sdp/sdp_dbg.h index ba4d8c083feb3..6d7d8e6db33db 100644 --- a/drivers/infiniband/ulp/sdp/sdp_dbg.h +++ b/drivers/infiniband/ulp/sdp/sdp_dbg.h @@ -21,8 +21,11 @@ } while (0) #define sdp_printk(level, sk, format, arg...) \ _sdp_printk(__func__, __LINE__, level, sk, format, ## arg) -#define sdp_warn(sk, format, arg...) \ - sdp_printk(KERN_WARNING, sk, format , ## arg) +#define sdp_warn(sk, format, arg...) \ + do { \ + sdp_printk(KERN_WARNING, sk, "\t%lx: " format , jiffies, ## arg); \ + sdp_prf(sk, NULL, format , ## arg); \ + } while (0) #define SDP_MODPARAM_SINT(var, def_val, msg) \ static int var = def_val; \ @@ -67,7 +70,7 @@ static inline unsigned long long current_nsec(void) #define current_nsec() jiffies_to_usecs(jiffies) #endif -#define sdp_prf1(sk, s, format, arg...) ({ \ +#define _sdp_prf(sk, s, _func, _line, format, arg...) ({ \ struct sdpprf_log *l = \ &sdpprf_log[sdpprf_log_count++ & (SDPPRF_LOG_SIZE - 1)]; \ preempt_disable(); \ @@ -79,14 +82,17 @@ static inline unsigned long long current_nsec(void) l->skb = s; \ snprintf(l->msg, sizeof(l->msg) - 1, format, ## arg); \ l->time = current_nsec(); \ - l->func = __func__; \ - l->line = __LINE__; \ + l->func = _func; \ + l->line = _line; \ preempt_enable(); \ 1; \ }) +#define sdp_prf1(sk, s, format, arg...) \ + _sdp_prf(sk, s, __func__, __LINE__, format, ## arg) #define sdp_prf(sk, s, format, arg...) sdp_prf1(sk, s, format, ## arg) #else +#define _sdp_prf(sk, s, _func, _line, format, arg...) #define sdp_prf1(sk, s, format, arg...) #define sdp_prf(sk, s, format, arg...) #endif @@ -94,10 +100,11 @@ static inline unsigned long long current_nsec(void) #ifdef CONFIG_INFINIBAND_SDP_DEBUG extern int sdp_debug_level; -#define sdp_dbg(sk, format, arg...) \ - do { \ - if (sdp_debug_level > 0) \ - sdp_printk(KERN_WARNING, sk, format , ## arg); \ +#define sdp_dbg(sk, format, arg...) \ + do { \ + if (sdp_debug_level > 0) \ + sdp_printk(KERN_WARNING, sk, format , ## arg); \ + sdp_prf(sk, NULL, format , ## arg); \ } while (0) #define sock_ref(sk, msg, sock_op) ({ \ @@ -121,15 +128,16 @@ extern int sdp_debug_level; #ifdef CONFIG_INFINIBAND_SDP_DEBUG_DATA extern int sdp_data_debug_level; -#define sdp_dbg_data(sk, format, arg...) \ - do { \ - if (sdp_data_debug_level & 0x2) \ - sdp_printk(KERN_WARNING, sk, format , ## arg); \ +#define sdp_dbg_data(sk, format, arg...) \ + do { \ + if (sdp_data_debug_level & 0x2) \ + sdp_printk(KERN_WARNING, sk, format , ## arg); \ + sdp_prf(sk, NULL, format , ## arg); \ } while (0) #define SDP_DUMP_PACKET(sk, str, skb, h) \ do { \ - if (sdp_data_debug_level & 0x1) \ - dump_packet(sk, str, skb, h); \ + if (sdp_data_debug_level & 0x1) \ + dump_packet(sk, str, skb, h); \ } while (0) #else #define sdp_dbg_data(priv, format, arg...) diff --git a/drivers/infiniband/ulp/sdp/sdp_proc.c b/drivers/infiniband/ulp/sdp/sdp_proc.c index 2da8e402d85cb..3faa8271344d2 100644 --- a/drivers/infiniband/ulp/sdp/sdp_proc.c +++ b/drivers/infiniband/ulp/sdp/sdp_proc.c @@ -379,6 +379,15 @@ int sdpprf_log_count; static unsigned long long start_t; +static inline void remove_newline(char *s) +{ + while (*s) { + if (*s == '\n') + *s = '\0'; + ++s; + } +} + static int sdpprf_show(struct seq_file *m, void *v) { struct sdpprf_log *l = v; @@ -391,7 +400,7 @@ static int sdpprf_show(struct seq_file *m, void *v) t = l->time - start_t; nsec_rem = do_div(t, 1000000000); - + remove_newline(l->msg); seq_printf(m, "%-6d: [%5lu.%06lu] %-50s - [%d{%d} %d:%d] " "skb: %p %s:%d\n", l->idx, (unsigned long)t, nsec_rem/1000,