Re: [RFC 3/3] sysrq: Warn about insufficient console_loglevel

From: Petr Mladek
Date: Mon Jan 14 2019 - 09:59:49 EST


On Mon 2019-01-14 17:05:22, Sergey Senozhatsky wrote:
> On (01/11/19 17:20), Petr Mladek wrote:
> > +static void warn_console(bool console_suppressed,
> > + int orig_log_level,
> > + struct sysrq_key_op *op_p)
> > +{
> > + static int warned;
> > +
> > + if (warned)
> > + return;
> > +
> > + /* Do not warn when people are already setting loglevel via sysrq */
> > + if (op_p->enable_mask & SYSRQ_ENABLE_LOG) {
> > + warned = 1;
> > + return;
> > + }
> > +
> > + if (console_suppressed) {
> > + pr_info("Messages filtered by console_loglevel (%d)%s\n",
> > + orig_log_level,
> > + sysrq_on_mask(SYSRQ_ENABLE_LOG) ? ", try SysRq+7" : "");
> > + warned = 1;
> > + }
> > +}
>
> I understand the intent.
>
> Some comments:
>
> - Not all of sysrq handlers printk() data. There are some quiet
> handlers. E.g. sysrq_handle_unraw(). Having "Messages filtered by
> console_loglevel" can be confusing.
>
> - Not all sysrq handlers use INFO level.
> E.g. sync_inodes_sb()->WARN_ON()->pr_warn(). So once again there can
> be a "false positive" "Messages filtered" error, while in fact
> no messages would be filtered out.
>
> What do you think?

Yes, it has false positives. On the other hand, I do not think
that a better message is worth even more complicated code.

Either we find a better text, for example, use warning style:

pr_warn("warning: messages are filtered by console loglevel (%d)%s\n"

or hint style:

pr_info("hint: make sure to see all messages by increasing the
console logvel, ...

or ???

Otherwise, I would just throw away this idea.

Best Regards,
Petr