Re: [RFC][PATCH] printk: Add option to append kernel version to the dict

From: Petr Mladek
Date: Tue May 17 2016 - 05:24:54 EST


On Fri 2016-05-13 13:58:04, Calvin Owens wrote:
> We use netconsole to collect kernel logs from all the servers at
> Facebook. We use this patch internally so each logline has a record of
> which kernel version emitted it.
>
> At first glance, this might seem lazy: as you would expect, we have a
> database which records which kernel version a host is currently running.
> But there are a lot of situations where that database cannot be current:
> early-ish boot crashes are probably the best example, but even beyond
> that there are lots of varieties of kernel brokenness that can prevent
> the database from being updated. Doing it explicitly this way ensures
> that we always know exactly what version emitted a given message.
>
> Doing it in printk() itself rather than extended netconsole ends up
> being much simpler, and has the advantage that future extended console
> implementations will be able to benefit from this as well.

I do not have strong opinion about it. I am just not sure that repeating the
very same string in each message is efficient and practical in general.

If you store the entire log somewhere, you should be able to find
the kernel version from the early boot messages, e.g. from
pr_notice("%s", linux_banner). Of course, this does not help
if the boot fails earlier but it is rather a corner case.

The risk is that someone else might need another information.
If we do it more generic, we might end up with quite complex code.

If we really need such a feature. It might make sense to print
the identifier at the beginning of each message. It will be the same
on each line and it might be easier to parse.

Best Regards,
Petr