From 6f87072e3f7145a8ae021cc8f7369142b7026f0e Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Wed, 19 Jul 2006 14:54:50 +0300 Subject: [PATCH] IB/sdp:Split data path debug from not (cherry picked from d7d5948842ab93dca50c0f38c9abf03489829d91 commit) --- drivers/infiniband/ulp/sdp/sdp.h | 12 ++++++++++++ drivers/infiniband/ulp/sdp/sdp_bcopy.c | 10 +++++----- drivers/infiniband/ulp/sdp/sdp_main.c | 24 +++++++++++++++--------- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/drivers/infiniband/ulp/sdp/sdp.h b/drivers/infiniband/ulp/sdp/sdp.h index 6997e87394d9..39e462859e2c 100644 --- a/drivers/infiniband/ulp/sdp/sdp.h +++ b/drivers/infiniband/ulp/sdp/sdp.h @@ -27,6 +27,18 @@ extern int sdp_debug_level; do { (void) (priv); } while (0) #endif /* CONFIG_INFINIBAND_SDP_DEBUG */ +#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 > 0) \ + sdp_printk(KERN_DEBUG, sk, format , ## arg); \ + } while (0) +#else +#define sdp_dbg_data(priv, format, arg...) \ + do { (void) (priv); } while (0) +#endif + #define SDP_RESOLVE_TIMEOUT 1000 #define SDP_ROUTE_TIMEOUT 1000 #define SDP_RETRY_COUNT 5 diff --git a/drivers/infiniband/ulp/sdp/sdp_bcopy.c b/drivers/infiniband/ulp/sdp/sdp_bcopy.c index 07e06dd70f82..90007b6d9ffc 100644 --- a/drivers/infiniband/ulp/sdp/sdp_bcopy.c +++ b/drivers/infiniband/ulp/sdp/sdp_bcopy.c @@ -299,7 +299,7 @@ static inline void update_send_head(struct sock *sk, struct sk_buff *skb) void sdp_post_sends(struct sdp_sock *ssk, int nonagle) { - /* TODO: nonagle */ + /* TODO: nonagle? */ struct sk_buff *skb; int c; @@ -365,9 +365,9 @@ static void sdp_handle_wc(struct sdp_sock *ssk, struct ib_wc *wc) wake_up(&ssk->wq); } else { /* TODO: handle msg < bsdh */ - sdp_dbg(&ssk->isk.sk, - "Recv completion. ID %d Length %d\n", - (int)wc->wr_id, wc->byte_len); + sdp_dbg_data(&ssk->isk.sk, + "Recv completion. ID %d Length %d\n", + (int)wc->wr_id, wc->byte_len); skb->len = wc->byte_len; skb->data_len = wc->byte_len - sizeof(struct sdp_bsdh); if (unlikely(skb->data_len < 0)) { @@ -449,7 +449,7 @@ void sdp_work(void *data) struct ib_cq *cq; int n, i; - sdp_dbg(sk, "%s\n", __func__); + sdp_dbg_data(sk, "%s\n", __func__); cq = ssk->cq; if (unlikely(!cq)) diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index a7f4a983755e..7b6dc3c04aee 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -73,6 +73,12 @@ int sdp_debug_level; module_param_named(debug_level, sdp_debug_level, int, 0644); MODULE_PARM_DESC(debug_level, "Enable debug tracing if > 0."); #endif +#ifdef CONFIG_INFINIBAND_SDP_DEBUG +int sdp_data_debug_level; + +module_param_named(data_debug_level, sdp_data_debug_level, int, 0644); +MODULE_PARM_DESC(data_debug_level, "Enable data path debug tracing if > 0."); +#endif struct workqueue_struct *sdp_workqueue; @@ -826,7 +832,7 @@ int sdp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, long timeo; lock_sock(sk); - sdp_dbg(sk, "%s\n", __func__); + sdp_dbg_data(sk, "%s\n", __func__); flags = msg->msg_flags; timeo = sock_sndtimeo(sk, flags & MSG_DONTWAIT); @@ -1050,7 +1056,7 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, int urg_data = 0; lock_sock(sk); - sdp_dbg(sk, "%s\n", __func__); + sdp_dbg_data(sk, "%s\n", __func__); err = -ENOTCONN; if (sk->sk_state == TCP_LISTEN) @@ -1132,21 +1138,21 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, release_sock(sk); lock_sock(sk); } else { - sdp_dbg(sk, "%s: sk_wait_data %ld\n", __func__, timeo); + sdp_dbg_data(sk, "%s: sk_wait_data %ld\n", __func__, timeo); sk_wait_data(sk, &timeo); } continue; found_ok_skb: - sdp_dbg(sk, "%s: found_ok_skb len %d\n", __func__, skb->len); - sdp_dbg(sk, "%s: len %Zd offset %d\n", __func__, len, offset); - sdp_dbg(sk, "%s: copied %d target %d\n", __func__, copied, target); + sdp_dbg_data(sk, "%s: found_ok_skb len %d\n", __func__, skb->len); + sdp_dbg_data(sk, "%s: len %Zd offset %d\n", __func__, len, offset); + sdp_dbg_data(sk, "%s: copied %d target %d\n", __func__, copied, target); urg_data = sdp_has_urgent_data(skb); used = skb->len - offset; if (len < used) used = len; - sdp_dbg(sk, "%s: used %ld\n", __func__, used); + sdp_dbg_data(sk, "%s: used %ld\n", __func__, used); if (!(flags & MSG_TRUNC)) { int err; @@ -1167,7 +1173,7 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, copied += used; len -= used; offset += used; - sdp_dbg(sk, "%s: done copied %d target %d\n", __func__, copied, target); + sdp_dbg_data(sk, "%s: done copied %d target %d\n", __func__, copied, target); sdp_rcv_space_adjust(sk); @@ -1276,7 +1282,7 @@ static unsigned int sdp_poll(struct file *file, struct socket *socket, struct poll_table_struct *wait) { int mask; - sdp_dbg(socket->sk, "%s\n", __func__); + sdp_dbg_data(socket->sk, "%s\n", __func__); mask = datagram_poll(file, socket, wait); /* TODO: Slightly ugly: it would be nicer if there was function -- 2.50.1