Re: 800+ byte inlines in include/net/pkt_act.h

From: jamal
Date: Mon Aug 21 2006 - 08:23:35 EST


On Sun, 2006-20-08 at 19:33 +0200, Denis Vlasenko wrote:
> Hi,
>
> include/net/pkt_act.h plays a game of inlines
> which are kind of "templatized", like this:
>
> act_ipt.c:
>
> /* ovewrride the defaults */
> #define tcf_st tcf_ipt
> #define tcf_t_lock ipt_lock
> #define tcf_ht tcf_ipt_ht
> #define CONFIG_NET_ACT_INIT
> #include <net/pkt_act.h>
>
> This results in code duplication. For example,
> tcf_generic_walker() is duplicated four times.
> On i386 it is about 4*800 bytes in text section.
> Other inlines are a bit smaller but still are substantial.

As per last discussion, either Patrick McHardy or myself are going to
work on it - at some point. Please be patient. The other alternative is:
you fix it and send patches.

Note that even after conversion, functions like tcf_generic_walker() are
not going to save much in total .text sizes; also note they run the
control path and are typically not as much invoked and therefore not
performance impacting on smaller cache systems..

cheers,
jamal

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