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

Arnd Bergmann arnd at arndb.de
Mon Nov 23 11:29:44 PST 2015


On Monday 23 November 2015 17:22:03 Russell King - ARM Linux wrote:
> 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:
> > > 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
> 
> Are you including dropping the bug table in these stats?  See BUG_TABLE
> in include/asm-generic/vmlinux.lds.h.
> 

Yes, it's the output from "size -A vmlinux", with the lines dropped that
are unchanged. See the __bug_table above for the part that got dropped in
all but the first column. This is included in the "Total" row, but is
only 13% of the size difference, 32508 bytes for BUG_TABLE in
multi_v7_defconfig, compared to 139304 bytes difference in .text.

	Arnd



More information about the linux-arm-kernel mailing list