Re: [RFC 1/2] printk: Add kernel parameter: mute_console

From: Petr Mladek
Date: Fri Oct 23 2020 - 05:46:17 EST


On Thu 2020-10-22 09:45:12, Steven Rostedt wrote:
> On Thu, 22 Oct 2020 13:42:27 +0200
> Petr Mladek <pmladek@xxxxxxxx> wrote:
>
> > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> > index fe64a49344bf..63fb96630767 100644
> > --- a/kernel/printk/printk.c
> > +++ b/kernel/printk/printk.c
> > @@ -1207,6 +1207,19 @@ void __init setup_log_buf(int early)
> > memblock_free(__pa(new_log_buf), new_log_buf_len);
> > }
> >
> > +static bool mute_console;
> > +
> > +static int __init mute_console_setup(char *str)
> > +{
> > + mute_console = true;
> > + pr_info("All consoles muted.\n");
> > +
> > + return 0;
> > +}
> > +
> > +early_param("mute_console", mute_console_setup);
> > +module_param(mute_console, bool, 0644);
> > +
>
> Why have both early_param and module_param? What's the purpose of
> module_param? Usually that's there to just set a variable, without a need
> for another interface. But if you have early_param() that sets
> mute_console, isn't that redundant?

I was surprised as well. But both seem to be needed:

+ early_param allows to enable it on the command line.
Note that module_param would need to be set via
printk.mute_console

+ module_param() allows to modify the state at runtime

IMHO, both should be possible. It is supposed to be used similar
way like ignore_loglevel.

Best Regards,
Petr