* [PATCH v2 net-next 0/2] clean up SOCK_DEBUG()
@ 2019-02-16 16:28 Yafang Shao
2019-02-16 16:28 ` [PATCH v2 net-next 1/2] tcp: " Yafang Shao
2019-02-16 16:28 ` [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING Yafang Shao
0 siblings, 2 replies; 5+ messages in thread
From: Yafang Shao @ 2019-02-16 16:28 UTC (permalink / raw)
To: davem
Cc: daniel, edumazet, joe, xiyou.wangcong, netdev, shaoyafang, Yafang Shao
Per discussion with Daniel[1] and Eric[2], these SOCK_DEBUG() calles in
TCP are not needed now.
We'd better clean up it.
Plus undefine SOCK_DEBUGGING by default.
[1] https://patchwork.ozlabs.org/patch/1035573/
[2] https://patchwork.ozlabs.org/patch/1040533/
Yafang Shao (2):
tcp: clean up SOCK_DEBUG()
net: sock: undefine SOCK_DEBUGGING
include/net/sock.h | 13 ++++++++-----
net/core/sock.c | 3 +++
net/ipv4/tcp_input.c | 19 +------------------
net/ipv6/tcp_ipv6.c | 2 --
4 files changed, 12 insertions(+), 25 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 net-next 1/2] tcp: clean up SOCK_DEBUG()
2019-02-16 16:28 [PATCH v2 net-next 0/2] clean up SOCK_DEBUG() Yafang Shao
@ 2019-02-16 16:28 ` Yafang Shao
2019-02-16 16:28 ` [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING Yafang Shao
1 sibling, 0 replies; 5+ messages in thread
From: Yafang Shao @ 2019-02-16 16:28 UTC (permalink / raw)
To: davem
Cc: daniel, edumazet, joe, xiyou.wangcong, netdev, shaoyafang, Yafang Shao
Per discussion with Daniel[1] and Eric[2], these SOCK_DEBUG() calles in
TCP are not needed now.
We'd better clean up it.
[1] https://patchwork.ozlabs.org/patch/1035573/
[2] https://patchwork.ozlabs.org/patch/1040533/
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
---
net/ipv4/tcp_input.c | 19 +------------------
net/ipv6/tcp_ipv6.c | 2 --
2 files changed, 1 insertion(+), 20 deletions(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 7a027dec..6d2750e 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3595,7 +3595,7 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
* this segment (RFC793 Section 3.9).
*/
if (after(ack, tp->snd_nxt))
- goto invalid_ack;
+ return -1;
if (after(ack, prior_snd_una)) {
flag |= FLAG_SND_UNA_ADVANCED;
@@ -3714,10 +3714,6 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
tcp_process_tlp_ack(sk, ack, flag);
return 1;
-invalid_ack:
- SOCK_DEBUG(sk, "Ack %u after %u:%u\n", ack, tp->snd_una, tp->snd_nxt);
- return -1;
-
old_ack:
/* If data was SACKed, tag it and see if we should send more data.
* If data was DSACKed, see if we can undo a cwnd reduction.
@@ -3731,7 +3727,6 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
tcp_xmit_recovery(sk, rexmit);
}
- SOCK_DEBUG(sk, "Ack %u before %u:%u\n", ack, tp->snd_una, tp->snd_nxt);
return 0;
}
@@ -4432,13 +4427,9 @@ static void tcp_ofo_queue(struct sock *sk)
rb_erase(&skb->rbnode, &tp->out_of_order_queue);
if (unlikely(!after(TCP_SKB_CB(skb)->end_seq, tp->rcv_nxt))) {
- SOCK_DEBUG(sk, "ofo packet was already received\n");
tcp_drop(sk, skb);
continue;
}
- SOCK_DEBUG(sk, "ofo requeuing : rcv_next %X seq %X - %X\n",
- tp->rcv_nxt, TCP_SKB_CB(skb)->seq,
- TCP_SKB_CB(skb)->end_seq);
tail = skb_peek_tail(&sk->sk_receive_queue);
eaten = tail && tcp_try_coalesce(sk, tail, skb, &fragstolen);
@@ -4502,8 +4493,6 @@ static void tcp_data_queue_ofo(struct sock *sk, struct sk_buff *skb)
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPOFOQUEUE);
seq = TCP_SKB_CB(skb)->seq;
end_seq = TCP_SKB_CB(skb)->end_seq;
- SOCK_DEBUG(sk, "out of order segment: rcv_next %X seq %X - %X\n",
- tp->rcv_nxt, seq, end_seq);
p = &tp->out_of_order_queue.rb_node;
if (RB_EMPTY_ROOT(&tp->out_of_order_queue)) {
@@ -4779,10 +4768,6 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
if (before(TCP_SKB_CB(skb)->seq, tp->rcv_nxt)) {
/* Partial packet, seq < rcv_next < end_seq */
- SOCK_DEBUG(sk, "partial packet: rcv_next %X seq %X - %X\n",
- tp->rcv_nxt, TCP_SKB_CB(skb)->seq,
- TCP_SKB_CB(skb)->end_seq);
-
tcp_dsack_set(sk, TCP_SKB_CB(skb)->seq, tp->rcv_nxt);
/* If window is closed, drop tail of packet. But after
@@ -5061,8 +5046,6 @@ static int tcp_prune_queue(struct sock *sk)
{
struct tcp_sock *tp = tcp_sk(sk);
- SOCK_DEBUG(sk, "prune_queue: c=%x\n", tp->copied_seq);
-
NET_INC_STATS(sock_net(sk), LINUX_MIB_PRUNECALLED);
if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf)
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index e51cda7..57ef69a1 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -220,8 +220,6 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
u32 exthdrlen = icsk->icsk_ext_hdr_len;
struct sockaddr_in sin;
- SOCK_DEBUG(sk, "connect: ipv4 mapped\n");
-
if (__ipv6_only_sock(sk))
return -ENETUNREACH;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING
2019-02-16 16:28 [PATCH v2 net-next 0/2] clean up SOCK_DEBUG() Yafang Shao
2019-02-16 16:28 ` [PATCH v2 net-next 1/2] tcp: " Yafang Shao
@ 2019-02-16 16:28 ` Yafang Shao
2019-02-17 11:58 ` Joe Perches
1 sibling, 1 reply; 5+ messages in thread
From: Yafang Shao @ 2019-02-16 16:28 UTC (permalink / raw)
To: davem
Cc: daniel, edumazet, joe, xiyou.wangcong, netdev, shaoyafang, Yafang Shao
SOCK_DEBUG() is a old facility for debugging.
If the user want to use it for debugging, the user must modify the
application first, that doesn't seem like a good way.
Now we have more powerful facilities, i.e. bpf or tracepoint, for this kind
of debugging purpose.
So we'd better disable it by default.
The reason why I don't remove it comepletely is that someone may still
would like to use it for debugging.
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Suggested-by: Joe Perches <joe@perches.com>
---
include/net/sock.h | 13 ++++++++-----
net/core/sock.c | 3 +++
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/include/net/sock.h b/include/net/sock.h
index 6679f3c..d41e8f4 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -81,14 +81,17 @@
*/
/* Define this to get the SOCK_DBG debugging facility. */
-#define SOCK_DEBUGGING
+/* #define SOCK_DEBUGGING */
#ifdef SOCK_DEBUGGING
-#define SOCK_DEBUG(sk, msg...) do { if ((sk) && sock_flag((sk), SOCK_DBG)) \
- printk(KERN_DEBUG msg); } while (0)
+#define SOCK_DEBUG(sk, fmt, ...) \
+do { \
+ if ((sk) && sock_flag((sk), SOCK_DBG)) \
+ pr_debug(fmt, ##__VA_ARGS__); \
+} while (0)
#else
/* Validate arguments and do nothing */
-static inline __printf(2, 3)
-void SOCK_DEBUG(const struct sock *sk, const char *msg, ...)
+__printf(2, 3)
+static inline void SOCK_DEBUG(const struct sock *sk, const char *fmt, ...)
{
}
#endif
diff --git a/net/core/sock.c b/net/core/sock.c
index 71ded4d..7c15835 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -753,6 +753,9 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
switch (optname) {
case SO_DEBUG:
+ /* This option takes effect only when SOCK_DEBUGGING
+ * is defined.
+ */
if (val && !capable(CAP_NET_ADMIN))
ret = -EACCES;
else
--
1.8.3.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING
2019-02-16 16:28 ` [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING Yafang Shao
@ 2019-02-17 11:58 ` Joe Perches
2019-02-17 14:07 ` Yafang Shao
0 siblings, 1 reply; 5+ messages in thread
From: Joe Perches @ 2019-02-17 11:58 UTC (permalink / raw)
To: Yafang Shao, davem; +Cc: daniel, edumazet, xiyou.wangcong, netdev, shaoyafang
On Sun, 2019-02-17 at 00:28 +0800, Yafang Shao wrote:
> SOCK_DEBUG() is a old facility for debugging.
> If the user want to use it for debugging, the user must modify the
> application first, that doesn't seem like a good way.
> Now we have more powerful facilities, i.e. bpf or tracepoint, for this kind
> of debugging purpose.
> So we'd better disable it by default.
> The reason why I don't remove it comepletely is that someone may still
> would like to use it for debugging.
>
> Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
> Suggested-by: Joe Perches <joe@perches.com>
> ---
> include/net/sock.h | 13 ++++++++-----
> net/core/sock.c | 3 +++
> 2 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/include/net/sock.h b/include/net/sock.h
> index 6679f3c..d41e8f4 100644
> --- a/include/net/sock.h
> +++ b/include/net/sock.h
> @@ -81,14 +81,17 @@
> */
>
> /* Define this to get the SOCK_DBG debugging facility. */
> -#define SOCK_DEBUGGING
> +/* #define SOCK_DEBUGGING */
> #ifdef SOCK_DEBUGGING
> -#define SOCK_DEBUG(sk, msg...) do { if ((sk) && sock_flag((sk), SOCK_DBG)) \
> - printk(KERN_DEBUG msg); } while (0)
> +#define SOCK_DEBUG(sk, fmt, ...) \
> +do { \
> + if ((sk) && sock_flag((sk), SOCK_DBG)) \
> + pr_debug(fmt, ##__VA_ARGS__); \
trivia:
I would not suggest pr_debug here as it also requires
either DEBUG to be defined or CONFIG_DYNAMIC_DEBUG
to be set.
If you really set SOCK_DEBUGGING, then printk(KERN_DEBUG
is probably right.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING
2019-02-17 11:58 ` Joe Perches
@ 2019-02-17 14:07 ` Yafang Shao
0 siblings, 0 replies; 5+ messages in thread
From: Yafang Shao @ 2019-02-17 14:07 UTC (permalink / raw)
To: Joe Perches
Cc: David Miller, Daniel Borkmann, Eric Dumazet, Cong Wang, netdev,
shaoyafang
On Sun, Feb 17, 2019 at 7:58 PM Joe Perches <joe@perches.com> wrote:
>
> On Sun, 2019-02-17 at 00:28 +0800, Yafang Shao wrote:
> > SOCK_DEBUG() is a old facility for debugging.
> > If the user want to use it for debugging, the user must modify the
> > application first, that doesn't seem like a good way.
> > Now we have more powerful facilities, i.e. bpf or tracepoint, for this kind
> > of debugging purpose.
> > So we'd better disable it by default.
> > The reason why I don't remove it comepletely is that someone may still
> > would like to use it for debugging.
> >
> > Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
> > Suggested-by: Joe Perches <joe@perches.com>
> > ---
> > include/net/sock.h | 13 ++++++++-----
> > net/core/sock.c | 3 +++
> > 2 files changed, 11 insertions(+), 5 deletions(-)
> >
> > diff --git a/include/net/sock.h b/include/net/sock.h
> > index 6679f3c..d41e8f4 100644
> > --- a/include/net/sock.h
> > +++ b/include/net/sock.h
> > @@ -81,14 +81,17 @@
> > */
> >
> > /* Define this to get the SOCK_DBG debugging facility. */
> > -#define SOCK_DEBUGGING
> > +/* #define SOCK_DEBUGGING */
> > #ifdef SOCK_DEBUGGING
> > -#define SOCK_DEBUG(sk, msg...) do { if ((sk) && sock_flag((sk), SOCK_DBG)) \
> > - printk(KERN_DEBUG msg); } while (0)
> > +#define SOCK_DEBUG(sk, fmt, ...) \
> > +do { \
> > + if ((sk) && sock_flag((sk), SOCK_DBG)) \
> > + pr_debug(fmt, ##__VA_ARGS__); \
>
> trivia:
>
> I would not suggest pr_debug here as it also requires
> either DEBUG to be defined or CONFIG_DYNAMIC_DEBUG
> to be set.
>
> If you really set SOCK_DEBUGGING, then printk(KERN_DEBUG
> is probably right.
>
Sure. Will change it.
Thanks
Yafang
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-02-17 14:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-16 16:28 [PATCH v2 net-next 0/2] clean up SOCK_DEBUG() Yafang Shao
2019-02-16 16:28 ` [PATCH v2 net-next 1/2] tcp: " Yafang Shao
2019-02-16 16:28 ` [PATCH v2 net-next 2/2] net: sock: undefine SOCK_DEBUGGING Yafang Shao
2019-02-17 11:58 ` Joe Perches
2019-02-17 14:07 ` Yafang Shao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).