Re: [RFC] asm-generic: default BUG_ON(x) to "if(x) BUG()"

From: Willy Tarreau
Date: Mon Nov 23 2015 - 12:05:31 EST


On Mon, Nov 23, 2015 at 05:52:38PM +0100, Arnd Bergmann wrote:
> On Monday 23 November 2015 16:37:50 Russell King - ARM Linux wrote:
> > On Mon, Nov 23, 2015 at 05:33:59PM +0100, Willy Tarreau wrote:
> > > I think you could do better by simply calling panic("BUG!") instead as
> > > BUG() does. It will avoid the printk() call and pushing the file/line
> > > number onto the stack. It will also probably not inflate the rodata this
> > > way.
> >
> > Does that not depend on the architectures BUG() implementation? If an
> > architecture implements it as a signalling illegal instruction and a
> > lookup table, changing it to be a panic() would probably be more code.
>
> Correct, overall, we are down to a 1.40% size reduction compared to
> 1.70% without my patch and 1.49% with my version:
>
> section CONFIG_BUG=y CONFIG_BUG=n CONFIG_BUG=n+patch panic("BUG!")
>
> .text 8320248 | 8180944 | 8207688 | 8221848
> .rodata 3633720 | 3567144 | 3570648 | 3567344
> __bug_table 32508 | --- | --- | ---
> __modver 692 | 1584 | 2176 | 1384
> .init.text 558132 | 548300 | 550088 | 550592
> .exit.text 12380 | 12256 | 12380 | 12448
> .data 1016672 | 1016064 | 1016128 | 1016064
> Total 14622556 | 14374510 | 14407326 | 14417898

Thanks for testing :-)

Willy

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