On Wed, Feb 28, 2024 at 03:00:03PM +0100, Geert Uytterhoeven wrote: > When printk-indexing is enabled, each dev_printk() invocation emits a > pi_entry structure. This is even true when the dev_printk() is > protected by an always-false check, as is typically the case for debug > messages: while the actual code to print the message is optimized out by > the compiler, the pi_entry structure is still emitted. > > Avoid emitting pi_entry structures for unavailable dev_printk() kernel > messages by: > 1. Introducing a dev_no_printk() helper, mimicked after the existing > no_printk() helper, which calls _dev_printk() instead of > dev_printk(), > 2. Replacing all "if (0) dev_printk(...)" constructs by calls to the > new helper. > > This reduces the size of an arm64 defconfig kernel with > CONFIG_PRINTK_INDEX=y by 957 KiB. ... > +/* > + * Dummy dev_printk for disabled debugging statements to use whilst maintaining dev_printk() > + * gcc's format checking. > + */ > +#define dev_no_printk(level, dev, fmt, ...) \ > + ({ \ > + if (0) \ > + _dev_printk(level, dev, fmt, ##__VA_ARGS__); \ > + }) -- With Best Regards, Andy Shevchenko