Re: [RFC PATCH 15/35] subarch support for controlling interrupt delivery

Christian Limpach
2006-05-09T20:42:19Z

On Tue, May 09, 2006 at 06:31:37PM +0200, Andi Kleen wrote:
> On Tuesday 09 May 2006 18:29, Christian Limpach wrote:
> > On Tue, May 09, 2006 at 06:07:57PM +0200, Andi Kleen wrote:
> > >
> > > >
> > > > Anybody want to comment on the performance impact of making
> > > > local_irq_* non-inline functions?
> > >
> > > I would guess for that much inline code it will be even a win to not
> > > inline because it will save icache.
> >
> > Maybe, although some of the macros compile down to only 2-3 instructions.
>
> Can you post before/after vmlinux size numbers for inline/out of line?

Sure, although it is a bit tricky since the #define's pass non-pointer
arguments by reference. This would also make it quite ugly to change
these.

Everything[1] in line:
-rwxr-xr-x 1 cl349 cl349 2633640 May 9 19:42 vmlinux-inline-stripped
Everything out of line:
-rwxr-xr-x 1 cl349 cl349 2621352 May 9 19:45 vmlinux-outline-stripped

Additionally, I changed did a build with only __sti and __restore_flags
out of line and the others in line:
-rwxr-xr-x 1 cl349 cl349 2617256 May 9 19:50 vmlinux-hybrid-stripped

__sti and __restore_flags are the ones which generate more code,
so it seemed more sensible to make the out of line.

Any conlusions?

christian

[1] __cli, __sti, __save_flags, __restore_flags, __save_and_cli, irqs_disabled