Re: [patch] uninline init_waitqueue_*() functions

From: Ingo Molnar
Date: Wed Jul 05 2006 - 15:38:48 EST



* Andrew Morton <akpm@xxxxxxxx> wrote:

> > > > text data bss dec filename
> > > > 21172153 6077270 3081864 30331287 vmlinux.x32.after
> > > > 21198222 6077106 3081864 30357192 vmlinux.x32.before
> > > >
> > > > with 851 callsites that's a 30.6 bytes win per call site (total 26K) -
> > > > still not bad at all.
> > >
> > > and that was with CONFIG_CC_OPTIMIZE_FOR_SIZE enabled. With
> > > optimize-for-size disabled the win goes up to 32.6 bytes (total 28K).
> >
> > i also tried a config with the best size settings (disabling
> > FRAME_POINTER, enabling CC_OPTIMIZE_FOR_SIZE), and this gives:
> >
> > text data bss dec filename
> > 20777768 6076042 3081864 29935674 vmlinux.x32.size.before
> > 20748140 6076178 3081864 29906182 vmlinux.x32.size.after
> >
> > or a 34.8 bytes win per callsite (29K total).
> >
>
> With gcc-4.1.0 on i686, uninlining those three functions as per the
> below patch _increases_ the allnoconfig vmlinux's .text from 833456
> bytes to 833728.

that's just the effect of CONFIG_REGPARM and CONFIG_CC_OPTIMIZE_FOR_SIZE
not being set in an allnoconfig. Once i set them the text size evens
out:

431348 60666 27276 519290 7ec7a vmlinux.x32.mini.before
431359 60666 27276 519301 7ec85 vmlinux.x32.mini.after

compiling without CONFIG_REGPARM on i686 (if you care about text size)
makes little sense. It penalizes function calls artificially.

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