Re: [patch 1/3] kmsg: Kernel message catalog macros.

From: Tim Hockin
Date: Tue Aug 12 2008 - 20:35:39 EST


On Wed, Jul 30, 2008 at 9:56 AM, Martin Schwidefsky
<schwidefsky@xxxxxxxxxx> wrote:
> From: Michael Holzheu <holzheu@xxxxxxxxxx>
> From: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
>
> Introduce a new family of printk macros which prefixes each kmsg message
> with a component name and allows to tag the printk with a message id.

We've been talking about doing something like this, just this week. AKPM
pointed me at this thread. Good timing. :)

> +#define kmsg_dev_alert(id, dev, format, arg...) \
> + printk(__KMSG_CHECK(ALERT, id) KMSG_COMPONENT \
> + ": %s: " format, (dev)->bus_id , ## arg)

Rather than the gcc-specific '## arg', shouldn't we use the standard C99
form: '##__VA_ARGS__' ?

As a format, I would argue to leave out the spaces after colons, making
the inevitable string splitting even easier.

I don't care for the magic file-global KMSG_COMPONENT. It just feels
wrong. In most cases, I want the prefix to be hierarchical. For example,
rather than "tg3" I want "net.tg3" or "netdev:tg3" or something.

Further, We want to make a clearer denotation between "just another
printk()" and these things, which are really "important events". Maybe a
global prefix that makes it easy to seperate them out? Or a parallel
"event" interface that logs to printk() and a netlink socket?


Tim
--
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/