Re: [PATCH] genirq: ARM dyntick cleanup

From: Russell King
Date: Mon Jul 03 2006 - 05:02:45 EST


On Mon, Jul 03, 2006 at 12:55:42AM -0700, Andrew Morton wrote:
> On Mon, 3 Jul 2006 08:41:55 +0100
> Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:
>
> > On Sun, Jul 02, 2006 at 05:35:27PM -0700, Andrew Morton wrote:
> > > This is not exactly a thing of beauty either. It's much cleaner to use
> > > __attribute__((weak)), but that will add an empty call-return to everyone's
> > > interrupts.
> >
> > Let's not go overboard with the weak stuff - it does not get removed
> > at link time, so it remains as dead code in the kernel image.
>
> Well.
>
> void handle_dynamic_tick(struct irqaction *action)
> {
> }
>
> consumes one byte, doesn't it? That's not very far overboard ;)

ROTFL!

All the word isn't x86. On ARM it's 3 words for the stack setup and
one for the tear down, so 16 bytes, assuming the function doesn't
return a value. If it does, add another 4 bytes.

So, on ARM potentially 16 to 20 bytes per weak function. That's a
1600% to 2000% increase on your estimate.

(Unfortunately we have to tell the compiler to always generate stack
frames otherwise we can't get call traces out of the kernel.)

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
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/