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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|