On Sun, Aug 16, 2009 at 10:36:50PM +0200, Ingo Molnar wrote: > > > An allyesconfig (CONFIG_FTRACE disabled) on x86_64 with gcc > > > 4.3.2 results in the following vmlinux sizes: > > > > > > 574152755 2009-08-16 20:05 vmlinux-orig > > > 574862000 2009-08-16 20:13 vmlinux-skb-inline > > > > It's more relevant to look at just code size. BUG_ON() has more of > > an impact on data sizes, because it does something like 10-12 > > bytes of exception data for each bug-on. But that exception data > > is out-of-line and not interesting. > > > > If the code size blows up a lot, that's worse than if the data > > size expands a bit. > > Also, allyesconfig isnt really relevant to inlining cost in general > as it enables everything. The defconfigs are better (at least on > x86) because they tend to be some distro-alike config - i.e. they > are closer to what most Linux users will run in the end. Ok, I'm still using allyesconfig but still these numbers should be good enough: For the unpatched kernel we have ffffffff81009000 T _stext ffffffff83614130 T _etext size: 39891248 ffffffff8460e250 R __start___bug_table ffffffff8462e9ec R __stop___bug_table size: 133020 And for the patched kernel (inlined functions) we get ffffffff81009000 T _stext ffffffff83627250 T _etext size: 39969360 ffffffff84621080 R __start___bug_table ffffffff84649c4c R __stop___bug_table size: 166860 We have CONFIG_GENERIC_BUG, CONFIG_GENERIC_BUG_RELATIVE_POINTERS and CONFIG_DEBUG_BUGVERBOSE all enabled. So the size of each bug table entry is 10 bytes. We end up with 3384 additional bug table entries caused by inlining. Text size increased by 78112 bytes which makes an average extra 23 bytes for each call site. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html