Re: [RFC][PATCH] New message-logging API (kprint)

From: Vegard Nossum
Date: Fri Oct 05 2007 - 09:13:22 EST


On 10/5/07, Rob Landley <rob@xxxxxxxxxxx> wrote:
> On Thursday 04 October 2007 3:17:03 pm Randy Dunlap wrote:
> > On Thu, 04 Oct 2007 22:04:07 +0200 Vegard Nossum wrote:
> > > Description: This patch largely implements the kprint API as previously
> > > posted to the LKML and described in Documentation/kprint.txt (see patch).
> > >
> > > The main purpose of this change is provide a unified logging API to the
> > > kernel and at the same time make it easy to add extensions, now and
> > > later.
> > >
> > > My changes and additions are as follows:
> >
> > $ diffstat -p1 -w70 kprint.patch
> ...
> > 40 files changed, 1660 insertions(+), 72 deletions(-)
>
> I started this thread by posting an idea I had for shrinking the kernel by
> allowing more code to be configured out. The API change was exactly one new
> parameter, with a direct 1->1 mapping from the old API to the new one, which
> was trivial to convert and which the compiler would catch if you missed one.
>
> The result of the discussion is a patch adding 1600 lines to the kernel,
> without removing anything.

Of course. If you look at the diffstat, as kindly posted by Randy,
you'll notice that about 500-600 of those lines are documentation,
configuration files, and headers.

What's really a concern (and a valid argument) is the overhead
introduced for each call to printk(); the defconfig kernel on x86
increases with about 210K. I will try to improve this.

> Last I checked, the current prink() worked just fine. Why is this _not_ the
> dreaded "infrastructure in search of a use"? What exactly can we _not_ do
> with the current code? What does this allow us to remove and simplify?

With the current code, localisation is not possible to do in a sane
way. My change is a "catch all" in desired features -- not just
removing some unwanted printks.


Vegard
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/