2012-08-11
How not to write kernel messages
Suppose that you reboot your Ubuntu 12.04 Linux machine and see, among the kernel boot messages, the following:
Yama: becoming mindful.
Perhaps you've heard something about Yama and would like to understand what this means, perhaps you're looking for boot anomalies in general because of an odd problem you're having, or even perhaps you'd just like to understand your kernel's boot sequence. Is this message helpful?
Of course not. For most people this is completely opaque and simply not
a useful message. Even if you've got some idea of what Yama is, the best
you can do is to take a guess at what this message probably means. A
much better version of this message would be something like 'Yama LSM
initializing
', and an even better version would change the code so that
it only appears after the Yama LSM actually is initialized.
(Printing this message early on is probably excusable; at least in the current Linux kernel, the Yama LSM panics the system if it can't complete the remaining initialization. I assume that the registration functions it calls are not supposed to fail, even though they can return errors.)
Linux is far from the only Unix to do this, but for various reasons the
Linux kernel has taken it to new heights (or depths). Quite a few kernel
messages are not written for outside people, and in fact they're often
not even written for general kernel programmers; they're pretty much
written for the people who are working on the particular subsystem, the
sort of people who know off the top of their head what Yama is and what
an in-joke message like 'Yama: becoming mindful
' actually means.
I'm not advocating for a totally buttoned down style of messages and sometimes you really do need debugging messages that require so much domain expertise that there's no point in making them comprehensible to outsiders. But most of the time kernel messages don't have to be anywhere near as obscure as they are.
(I expect that this is also the kind of thing that you generally can't fix by submitting a patch, because a patch to make a kernel message 'more boring' is highly likely to be politically explosive. Changing this needs to come from a cultural shift and internal pressure, not attempts from outsiders.)