From mboxrd@z Thu Jan 1 00:00:00 1970 From: jamal Subject: Re: 800+ byte inlines in include/net/pkt_act.h Date: Mon, 21 Aug 2006 08:26:00 -0400 Message-ID: <1156163160.5126.47.camel@jzny2> References: <200608201933.10293.vda.linux@googlemail.com> Reply-To: hadi@cyberus.ca Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Return-path: Received: from mx02.cybersurf.com ([209.197.145.105]:6574 "EHLO mx02.cybersurf.com") by vger.kernel.org with ESMTP id S1030419AbWHUM0E (ORCPT ); Mon, 21 Aug 2006 08:26:04 -0400 To: Denis Vlasenko In-Reply-To: <200608201933.10293.vda.linux@googlemail.com> Sender: netdev-owner@vger.kernel.org List-Id: netdev.vger.kernel.org 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 > > 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