Convert net_msg_warn, NETDEBUG, & LIMIT_NETDEBUG?
Subsystems (3)
net_msg_warn is a sysctl used to control the printk of a bundle of mostly ipv4/ipv6 logging messages.
Does anyone use it?
NETDEBUG is used 4 times, 2 of which seem senseless as they are allocation failures messages after an alloc_skb. These already get stack dumps.
The other NETDEBUG uses are ESP crypto descriptions.
LIMIT_NETDEBUG is used a lot more.
include/net/sock.h:#define LIMIT_NETDEBUG(fmt, args...) \include/net/sock.h- do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0)
Most of the LIMIT_NETDEBUG uses are emitted at KERN_DEBUG.
Here is the count of each type of use:
31 KERN_DEBUG
2 KERN_ERR
3 KERN_INFO
11 KERN_WARNING
Should those KERN_DEBUG uses be converted to net_dbg_ratelimited so that these uses could be controlled via dynamic_debug instead of the net_msg_warn sysctl?
net/dccp/ uses LIMIT_NETDEBUG via DCCP_WARN to control another 38 KERN_WARNING messages.
The others LIMIT_NETDEBUG uses could be converted to net_<level>_ratelimited if appropriate.
David Miller
maintainerFrom: Joe Perches <[email protected]>
Date: Tue, 04 Nov 2014 12:46:40 -0800
Quoted 4 lines
net_msg_warnis a sysctl used to control the printk of a bundle of mostly ipv4/ipv6 logging messages.Does anyone use it?
...
Quoted 4 lines
Should those
KERN_DEBUGuses be converted tonet_dbg_ratelimitedso that these uses could be controlled viadynamic_debuginstead of thenet_msg_warnsysctl?
...
I will respond to this by saying that, generally speaking, I'd rather we move away from local debugging facility and controls and towards the generic ones.
Definitely kill the allocation failure debug stuff, that's obviously superfluous and bogus.
It may be the case that we're stuck with the net_msg_warn sysctl for the stuff that isn't obviously extraneous and removable like the allocation failure cases.
Why don't we work on these one at a time and see what's left after all the adjustments/deletions?
Thanks.
PATCH 1/1 net; ipv[46] - Remove 2 unnecessary NETDEBUG OOM messages
These messages aren't useful as there's a generic dump_stack() on OOM.
Neaten the comment and if test above the OOM by separating the assign in if into an allocation then if test.
--- net/ipv4/ip_output.c | 8 +++----- net/ipv6/ip6_output.c | 10 ++++------ 2 files changed, 7 insertions(+), 11 deletions(-)
net/ipv4/ip_output.c +3 -5
@@ -662,12 +662,10 @@ slow_path:if (len < left) { len &= ~7 ; } -/* -* Allocate buffer. -*/ -if ((skb2 =alloc_skb (len+hlen+ll_rs,GFP_ATOMIC )) ==NULL ) { -NETDEBUG (KERN_INFO "IP: frag: no memory for new fragment!\n" ); +/* Allocate buffer */ + skb2 =alloc_skb (len + hlen + ll_rs,GFP_ATOMIC ); +if (!skb2) { err = -ENOMEM ; goto fail; }
net/ipv6/ip6_output.c +4 -6
@@ -747,13 +747,11 @@ slow_path:if (len < left) { len &= ~7 ; } -/* -* Allocate buffer. -*/ -if ((frag =alloc_skb (len + hlen +sizeof (struct frag_hdr ) + - hroom + troom,GFP_ATOMIC )) ==NULL ) { -NETDEBUG (KERN_INFO "IPv6: frag: no memory for new fragment!\n" ); +/* Allocate buffer */ + frag =alloc_skb (len + hlen +sizeof (struct frag_hdr ) + + hroom + troom,GFP_ATOMIC ); +if (!frag) {IP6_INC_STATS (net,ip6_dst_idev (skb_dst (skb)),IPSTATS_MIB_FRAGFAILS ); err = -ENOMEM ;
Re: [PATCH net-next] net; ipv[46] - Remove 2 unnecessary NETDEBUG OOM messages
From: Joe Perches <[email protected]>
Date: Wed, 05 Nov 2014 14:39:21 -0800
Quoted 7 lines
These messages aren't useful as there's a generic
dump_stack()on OOM.Neaten the comment and if test above the OOM by separating the assign in if into an allocation then if test.
Signed-off-by Joe Perches <[email protected]>
Applied.