Messages in this thread | | | Subject | Re: [PATCH] printk: Make CONSOLE_LOGLEVEL_QUIET configurable | From | Hans de Goede <> | Date | Wed, 20 Jun 2018 15:37:47 +0200 |
| |
Hi,
On 20-06-18 13:03, Petr Mladek wrote: > On Tue 2018-06-19 13:57:26, Hans de Goede wrote: >> The goal of passing the "quiet" option to the kernel is for the kernel >> to be quiet unless something really is wrong. >> >> Sofar passing quiet has been (mostly) equivalent to passing >> loglevel=4 on the kernel commandline. Which means to show any messages >> with a level of KERN_ERR or higher severity on the console. >> >> In practice this often does not result in a quiet boot though, since >> there are many false-positive or otherwise harmless error messages printed, >> defeating the purpose of the quiet option. Esp. the ACPICA code is really >> bad wrt this, but there are plenty of others too. > > I see your pain. But this sounds like a workaround for a broken code. > This change might just encourage people to create even more mess.
I've been submitting patches upstream to fix false-positive KERN_ERR messages for more then a year now and getting a KERN_ERR free kernel (on more then 1 specific model hw) is just undoable. Every release some new nonsense error comes up, like e.g.:
https://bugzilla.redhat.com/show_bug.cgi?id=1568276
Besides this random KERN_ERR cases (of which there are plenty by themselves) I've also had long discussions with the ACPICA upstream maintainers, but they refuse to change this instead insisting that:
a) Vendors should fix there DSDTs to be perfect; and b) end-users should then update their BIOS to fix this
Neither of which is a realistic expectation in anyway.
IOW I've tried to fix this the right way and I will keep posting patches to keep "dmesg --level=err" output to a minimum, but it simply is not feasible to get the desired quiet boot with its current configuration of quiet mapping to loglevel=4.
>> This commit makes CONSOLE_LOGLEVEL_QUIET configurable. >> >> This for example will allow distros which want quiet to really mean quiet >> to set CONSOLE_LOGLEVEL_QUIET so that only messages with a higher severity >> then KERN_ERR (CRIT, ALERT, EMERG) get printed, avoiding an endless game >> of whack-a-mole silencing harmless error messages. > > I find it a bit confusing that "quiet" would mean something different > on different systems.
The kernel is so configurable already that I don't think this really is much of an issue, quiet will still mean quiet on all systems, some might just be a tad more quiet (or actually be quiet) compared to others.
The same argument could be made for the default loglevel being configurable, yet it is configurable already.
> Why did not you use loglevel=<whatever_you_need> instead of "quiet"?
We would still need to pass quiet, to also silence e.g. the messages from the EDD code, see arch/x86/boot/edd.c around line 147 and further, so then we would need to pass:
quiet loglevel=3
And we would need to pass it in that order! which is ugly also this complicates giving people instructions to turn it off to debug system not-booting problems.
> Alternative solution would be to add "silent" or so to calm down > everything. But I am afraid that any change in this area would > just create a mess similar to grep -s and -q options.
A better alternative would be to make quiet actually does what the name suggests and simply unconditionally change CONSOLE_LOGLEVEL_QUIET from 4 to 3. I went with making this configurable because I expect that to be a controversial change.
A third, sucky, alternative would be for Fedora to permanently carry a downstream patch changing the CONSOLE_LOGLEVEL_QUIET from 4 to 3 in printk.h. That would still lead to the confusion about quiet not meaning the same everywhere (although I would expect e.g. Ubuntu to follow suit) combined with extra downstream patches which are never good.
Regards,
Hans
| |