[coreboot] [PATCH]More consistent behaviour for printk_*

Myles Watson mylesgw at gmail.com
Mon Apr 27 20:16:18 CEST 2009



> -----Original Message-----
> From: coreboot-bounces+mylesgw=gmail.com at coreboot.org [mailto:coreboot-
> bounces+mylesgw=gmail.com at coreboot.org] On Behalf Of Patrick Georgi
> Sent: Monday, April 27, 2009 11:49 AM
> To: coreboot at coreboot.org
> Subject: [coreboot] [PATCH]More consistent behaviour for printk_*
> 
> Hi,
> 
> the attached patch make printk_* behaviour more consistent. Without it,
> side
> effects in the arguments (eg. a pci config read, or variable increment)
> "vanish" with the message, and the behaviour changes.
> 
> Example:
> printk_info("foo %d\n", i++);
> 
> Without this patch, this becomes (for suitable loglevels)
> do {} while (0)
> 
> With this patch, this will be:
> do_printk(EMERG, "", i++);
> 
> Some of these effects might be unwanted, but at least they are consistent
> now.
> For example, via c7 CAR failed for loglevel > 7 for various reasons (patch
> upcoming). While it fails all the time now (this patch is no "magic fix"),
> upcoming development is less likely to produce such "hidden surprises".
> 
> To reduce the memory footprint slightly, the formatted strings are
> discarded.
> A simpler patch would be to just kill the whole "#if #undef #define
> #endif"-

I like simple.

> section, but then a lot of strings that never surface would be compiled in
> (and I doubt the compiler is clever enough to figure that out)

We discussed this recently for v3.  Do you have a good idea of how much
space this actually saves?

> Signed-off-by: Patrick Georgi <patrick.georgi at coresystems.de>
Acked-by: Myles Watson <mylesgw at gmail.com>

Thanks,
Myles





More information about the coreboot mailing list