Re: [PATCH 5.10 038/146] mptcp: do not warn on bad input from the network

From: Paolo Abeni
Date: Wed Jun 23 2021 - 13:20:00 EST


On Wed, 2021-06-23 at 18:53 +0200, Pavel Machek wrote:
> Hi!
>
> > > > From: Paolo Abeni <pabeni@xxxxxxxxxx>
> > > >
> > > > [ Upstream commit 61e710227e97172355d5f150d5c78c64175d9fb2 ]
> > > >
> > > > warn_bad_map() produces a kernel WARN on bad input coming
> > > > from the network. Use pr_debug() to avoid spamming the system
> > > > log.
> > >
> > > So... we switched from WARN _ONCE_ to pr_debug, as many times as we
> > > detect the problem.
> > >
> > > Should this be pr_debug_once?
> >
> > Thank you for double checking this!
> >
> > In the MPTCP code, we use pr_debug() statements as a debug tool, e.g.
> > when enabled, it could print per-packet info with no restriction.
> >
> > There are (a few) similar use in the plain TCP code.
> >
> > pr_debug() is not supposed to be enabled on any production system,
> > while the WARN_ONCE could trigger automated tools for irrelevant
> > network noise.
>
> Correct me if I'm wrong, but I believe pr_debug will result in
> messages being stored in the dmesg buffer, even on production
> systems.

If DYNAMIC_DEBUG is enabled, and the system administator explicitly
enables the relevant debug message writing suitable data in
/sys/kernel/debug/dynamic_debug/control, yes, the message will be
printed on dmsg.

With DYNAMIC_DEBUG disabled, patching the kernel and defining the DEBUG
macro in the net/mptcp/protocol.c file you will get again the debug
message.

Neither of the above fit productions systems IMHO, and I'm not aware of
other options to trigger the relevant debug message.

I personally have CONFIG_DYNAMIC_DEBUG=y in my kconfig and I enable the
relevant debug message as needed in my devel activity.

Cheers,

Paolo