Messages in this thread | | | Date | Thu, 20 Sep 2007 14:58:54 -0700 | From | Tim Bird <> | Subject | Re: [Announce] Linux-tiny project revival |
| |
Rob Landley wrote: > So instead of: > printk(KERN_NOTICE "Fruit=%d\n", banana); > It would now be: > printk(KERN_NOTICE, "Fruit=%d\n", banana); > > Change the header from: > #define KERN_NOTICE "<5>" > to: > #define KERN_NOTICE 5 > > Then you can change the printk guts to do something vaguely like (untested): > #define printk(arg1, arg2, ...) actual_printk("<" #arg1 ">" arg2, __VA_ARGS__) ... > [then] the > compiler's dead code eliminator zaps the printks you don't care about so they > don't bloat the kernel image.
I agree in principal with the idea, but there are some major practical wrinkles that would have to be worked through.
First, not all printks that are missing a log level should have one. People do stuff like this:
printk(KERN_INFO "interesting info follows:"); ... printk("var5: %d\n", var5);
Or even things that evaluate to: printk("");
The code inside printk currently has to examine the strings, looking for line feeds and inserting log levels.
Given that there are about 60,000 printks in the kernel (and that's not counting wrappers like dprintk() and other locally-defined functions and macros) it would be a huge task to examine the code and differentiate strings that really start a new log message (and thus should have an attached log level) and strings that don't. -- Tim
============================= Tim Bird Architecture Group Chair, CE Linux Forum Senior Staff Engineer, Sony Corporation of America =============================
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |