* [bernie@develer.com: Kernel 2.6 size increase] @ 2003-07-23 18:53 Christoph Hellwig 2003-07-23 18:55 ` Christoph Hellwig 0 siblings, 1 reply; 7+ messages in thread From: Christoph Hellwig @ 2003-07-23 18:53 UTC (permalink / raw) To: linux-kernel, netdev I think this is not only of interest fir the uClinux folks.. ----- Forwarded message from Bernardo Innocenti <bernie@develer.com> ----- Date: Wed, 23 Jul 2003 20:46:46 +0200 From: Bernardo Innocenti <bernie@develer.com> Subject: Kernel 2.6 size increase To: uClinux development list <uclinux-dev@uclinux.org> Cc: linux-kernel@vger.kernel.org Hello, code bloat can be very harmful on embedded targets, but it's generally inconvenient for any platform. I've measured the code increase between 2.4.21 and 2.6.0-test1 on a small kernel configuration for ColdFire: text data bss dec hex filename 640564 39152 134260 813976 c6b98 linux-2.4.x/linux 845924 51204 78896 976024 ee498 linux-2.5.x/vmlinux I could provide the exact .config file for both kernels to anybody interested. They are almost the same: no filesystems except JFFS2, IPv4 and a bunch of small drivers. I have no SMP, security, futexes, modules and anything else not strictly needed to execute processes. I've made a linker map file and compared the size of single subsystems. These are the the major contributors to the size increase: kernel/ +27KB mm/ +14KB fs/ +47KB drivers/ +35KB net/ +64KB I've digged into net/ with nm -S --size-sort. It seems that the major increase is caused by net/xfrm/. Could this module be made optional? In fs/, almost all modules have got 30-40% bigger, therefore bloat is probably caused by inlines and macros getting more complex. Block drivers and MTD have generally become smaller. Character devices are responsable for most of the size increase in drivers/. -- // Bernardo Innocenti - Develer S.r.l., R&D dept. \X/ http://www.develer.com/ Please don't send Word attachments - http://www.gnu.org/philosophy/no-word-attachments.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ ----- End forwarded message ----- ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [bernie@develer.com: Kernel 2.6 size increase] 2003-07-23 18:53 [bernie@develer.com: Kernel 2.6 size increase] Christoph Hellwig @ 2003-07-23 18:55 ` Christoph Hellwig 2003-07-23 18:58 ` David S. Miller 0 siblings, 1 reply; 7+ messages in thread From: Christoph Hellwig @ 2003-07-23 18:55 UTC (permalink / raw) To: linux-kernel, netdev On Wed, Jul 23, 2003 at 07:53:55PM +0100, Christoph Hellwig wrote: > I think this is not only of interest fir the uClinux folks.. Sorry, this actually already Cc'ed lkml :) Still the netdev folks should read it, too. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [bernie@develer.com: Kernel 2.6 size increase] 2003-07-23 18:55 ` Christoph Hellwig @ 2003-07-23 18:58 ` David S. Miller [not found] ` <20030723115858.7506829I4.davem@redhat.com> 0 siblings, 1 reply; 7+ messages in thread From: David S. Miller @ 2003-07-23 18:58 UTC (permalink / raw) To: Christoph Hellwig; +Cc: linux-kernel, netdev On Wed, 23 Jul 2003 19:55:04 +0100 Christoph Hellwig <hch@infradead.org> wrote: > On Wed, Jul 23, 2003 at 07:53:55PM +0100, Christoph Hellwig wrote: > > I think this is not only of interest fir the uClinux folks.. > > Sorry, this actually already Cc'ed lkml :) Still the netdev folks > should read it, too. Well, we gained some code and a little bit of data, but the BSS was cut in half which I think deserves noticing :-) Also, he should analyze the amount of code that actually gets executed for various tasks, comparing 2.4.x to 2.5.x I'd take a half-meg code size hit if it meant that all the normal code paths got cut in half :-) ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20030723115858.7506829I4.davem@redhat.com>]
* Re: [bernie@develer.com: Kernel 2.6 size increase] [not found] ` <20030723115858.7506829I4.davem@redhat.com> @ 2003-07-23 19:06 ` Christoph Hellwig 2003-07-23 19:09 ` David S. Miller 2003-07-23 23:12 ` bill davidsen 0 siblings, 2 replies; 7+ messages in thread From: Christoph Hellwig @ 2003-07-23 19:06 UTC (permalink / raw) To: David S. Miller; +Cc: linux-kernel, netdev On Wed, Jul 23, 2003 at 11:58:58AM -0700, David S. Miller wrote: > > Sorry, this actually already Cc'ed lkml :) Still the netdev folks > > should read it, too. > > Well, we gained some code and a little bit of data, but > the BSS was cut in half which I think deserves noticing :-) > > Also, he should analyze the amount of code that actually > gets executed for various tasks, comparing 2.4.x to 2.5.x > > I'd take a half-meg code size hit if it meant that all > the normal code paths got cut in half :-) half a megabyte more codesize is a lot if you're based on flash. I know you absolutely disliked Andi's patch to make the xfrm subsystem optional so we might need find other ways to make the code smaller on those systems that need it. Now I could talk a lot but I'm really no networking insider so it's hard for me to suggest where to start. I'll rather look at the fs/ issue but it would be nice if networking folks could do their part, too. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [bernie@develer.com: Kernel 2.6 size increase] 2003-07-23 19:06 ` Christoph Hellwig @ 2003-07-23 19:09 ` David S. Miller 2003-07-23 19:13 ` Christoph Hellwig 2003-07-23 23:12 ` bill davidsen 1 sibling, 1 reply; 7+ messages in thread From: David S. Miller @ 2003-07-23 19:09 UTC (permalink / raw) To: Christoph Hellwig; +Cc: linux-kernel, netdev On Wed, 23 Jul 2003 20:06:58 +0100 Christoph Hellwig <hch@infradead.org> wrote: > I know you absolutely disliked Andi's patch to make the xfrm subsystem > optional so we might need find other ways to make the code smaller > on those systems that need it. I'm willing to reconsider it. So basically we'd have a CONFIG_NET_XFRM, and things like AH/ESP/IPCOMP/AH6/ESP6/IPCOMP6 would say "select NET_XFRM" in the Kconfig where they are selected. Then when CONFIG_NET_XFRM is not set all the xfrm interfaces called from non-ipsec non-xfrm source files get NOP versions. Is this exactly what Andi's patch did? Just send it on so we can integrate this. We actually lost a lot of code in other areas of the networking, for example Andrew Morton and I made many bogus function inlines undone because they made the code too large. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [bernie@develer.com: Kernel 2.6 size increase] 2003-07-23 19:09 ` David S. Miller @ 2003-07-23 19:13 ` Christoph Hellwig 0 siblings, 0 replies; 7+ messages in thread From: Christoph Hellwig @ 2003-07-23 19:13 UTC (permalink / raw) To: David S. Miller; +Cc: Christoph Hellwig, linux-kernel, netdev On Wed, Jul 23, 2003 at 12:09:01PM -0700, David S. Miller wrote: > So basically we'd have a CONFIG_NET_XFRM, and things like > AH/ESP/IPCOMP/AH6/ESP6/IPCOMP6 would say "select NET_XFRM" > in the Kconfig where they are selected. > > Then when CONFIG_NET_XFRM is not set all the xfrm interfaces > called from non-ipsec non-xfrm source files get NOP versions. > > Is this exactly what Andi's patch did? Just send it on > so we can integrate this. I think that's what it did modula the select which IIRC wasn't available back then. But I guess I'll rather leave this to Andi. > We actually lost a lot of code in other areas of the networking, for > example Andrew Morton and I made many bogus function inlines > undone because they made the code too large. That's cool! Now we just need to find a bunch more regressions and actually make 2.6 smaller than 2.4 :) Of course that's true for the other subsystems, too. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [bernie@develer.com: Kernel 2.6 size increase] 2003-07-23 19:06 ` Christoph Hellwig 2003-07-23 19:09 ` David S. Miller @ 2003-07-23 23:12 ` bill davidsen 1 sibling, 0 replies; 7+ messages in thread From: bill davidsen @ 2003-07-23 23:12 UTC (permalink / raw) To: linux-kernel In article <20030723200658.A27856@infradead.org>, Christoph Hellwig <hch@infradead.org> wrote: | half a megabyte more codesize is a lot if you're based on flash. | I know you absolutely disliked Andi's patch to make the xfrm subsystem | optional so we might need find other ways to make the code smaller | on those systems that need it. Now I could talk a lot but I'm really | no networking insider so it's hard for me to suggest where to start. | I'll rather look at the fs/ issue but it would be nice if networking | folks could do their part, too. Actually, perhaps some of the non-functional and misfunctional things might get fixed first and save the diet for 2.6.5 or so. There is no lack of things which haven't been quiet ported from 2.4, don't work right, etc. I doubt that the people who care most about size are going to be doing a fast change to 2.6 until the dust settles. -- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-07-23 23:05 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2003-07-23 18:53 [bernie@develer.com: Kernel 2.6 size increase] Christoph Hellwig 2003-07-23 18:55 ` Christoph Hellwig 2003-07-23 18:58 ` David S. Miller [not found] ` <20030723115858.7506829I4.davem@redhat.com> 2003-07-23 19:06 ` Christoph Hellwig 2003-07-23 19:09 ` David S. Miller 2003-07-23 19:13 ` Christoph Hellwig 2003-07-23 23:12 ` bill davidsen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).