Re: [RFC] New kernel-message logging API

Rob Landley
2007-09-23T20:05:50Z

On Saturday 22 September 2007 2:27:29 pm Vegard Nossum wrote:
> After recent discussions on LKML and a general dissatisfaction at the
> current printk() kernel-message logging interface, I've decided to
> write down some of the ideas for a better system.
>
>
> Requirements
> ============
>
> * Backwards compatibility with printk(), syslog(), etc.

I.E. what we have now works just fine for what it does.

> * Extensibility. Features like timestamping or file/line recording
> [1] should be both selectable at compile-time and (if compiled in) at
> run-time.

That doesn't require changing the API. Allowing the compiler to eliminate
messages below a threshold requires changing the API.

>
> API
> ===
>
> #define kprint(fmt, ...)
>
> The main part of the kprint interface should be the kprint() function.

And then you propose not having a single kprint() function...

> To support the different log-levels, there exists one kprint_*()
> function for each log-level, for example kprint_info().

Why is this better than feeding the level in as an argument to the macro?

> In order to print several related lines as one chunk, the emitter
> should first allocate an object of the type struct kprint_buffer.

You know, I'm pretty happy with a first pass that doesn't address this issue
at all. Why bundle three unrelated problems into a single all-or-nothing
pass?

Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.