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