Re: [PATCH] printk: allow setting DEFAULT_MESSAGE_LEVEL via Kconfig

From: Andrew Morton
Date: Wed Jan 26 2011 - 17:49:34 EST


On Tue, 25 Jan 2011 15:57:00 -0800
Mandeep Singh Baines <msb@xxxxxxxxxxxx> wrote:

> We've been burned by regressions/bugs which we later realized could
> have been triaged quicker if only we'd paid closer attention to
> dmesg. To make it easier to audit dmesg, we'd like to make
> DEFAULT_MESSAGE_LEVEL Kconfig-settable. That way we can set it to
> KERN_NOTICE and audit any messages <= KERN_WARNING.
>
> Signed-off-by: Mandeep Singh Baines <msb@xxxxxxxxxxxx>
> ---
> kernel/printk.c | 2 +-
> lib/Kconfig.debug | 12 ++++++++++++
> 2 files changed, 13 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/printk.c b/kernel/printk.c
> index 5ddd291..f91a7fd 100644
> --- a/kernel/printk.c
> +++ b/kernel/printk.c
> @@ -59,7 +59,7 @@ void asmlinkage __attribute__((weak)) early_printk(const char *fmt, ...)
> #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)
>
> /* printk's without a loglevel use this.. */
> -#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
> +#define DEFAULT_MESSAGE_LOGLEVEL CONFIG_DEFAULT_MESSAGE_LOGLEVEL
>
> /* We show everything that is MORE important than this.. */
> #define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index 28b42b9..67b42fa 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -9,6 +9,18 @@ config PRINTK_TIME
> operations. This is useful for identifying long delays
> in kernel startup.
>
> +config DEFAULT_MESSAGE_LOGLEVEL
> + int "Default message log level (1-7)"
> + range 1 7
> + depends on PRINTK
> + default "4"
> + help
> + Default log level for printk statements with no specified priority.
> +
> + This was hard-coded to KERN_WARNING since at least 2.6.10 but folks
> + that are auditing their logs closely may want to set it to a lower
> + priority.
> +
> config ENABLE_WARN_DEPRECATED
> bool "Enable __deprecated logic"
> default y

I'm a bit surprised that this wasn't already tunable at boot-time
and/or at runtime.

I think it's generally superior to be able to tune this sort of thing
via kernel boot parameters and/or /proc knobs, rather than requiring a
recompile. That might be a problem in this specific case, if we have
printks which are occurring before __setup() parsing has completed.


Poeple often complain that they want things settable in Kconfig because
for some reason it's all too hard to set the kernel boot command line.
Next time someone says this I'll suggest that they fix the problem
permanently by implementing a CONFIG_CMDLINE string, which gets
inserted into the kernel boot command line at compile time ;)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/