On Tue, 2008-08-12 at 17:35 -0700, Tim Hockin wrote: > 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. :) Good to hear that we are not the only one working on this. > > +#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__' ? Ok, I changed the macros accordingly. > As a format, I would argue to leave out the spaces after colons, making > the inevitable string splitting even easier. Makes sense and it does not make the message harder to read. > 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. But what is the alternative to the #define to specify the base name of the message tag? KBUILD_MODNAME has been proposed but I don't think this is a good idea since I want the message tags to be independent of the code structure. > 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? Well the kmsg macros distinguish between id==0 and id>0 messages. For a id==0 message there is no documentation required and the kmsg prefix will be just the KMSG_COMPONENT. You could consider that to be "just another printk". For id>0 the kmsg macros will create the tuppel KMSG_COMPONENT.ID so you already can separate "normal" and "important" prinkts. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin. -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html