All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@kernel.org>
To: Andi Kleen <ak@suse.de>
Cc: Sam Ravnborg <sam@ravnborg.org>,
	David Howells <dhowells@redhat.com>,
	torvalds@osdl.org, akpm@linux-foundation.org,
	linux-kernel@vger.kernel.org, linux-am33-list@redhat.com
Subject: Re: [PATCH 1/6] Suppress A.OUT library support if !CONFIG_BINFMT_AOUT [try #5]
Date: Sun, 11 Nov 2007 17:05:04 +0100	[thread overview]
Message-ID: <20071111160504.GR21669@stusta.de> (raw)
In-Reply-To: <200711111646.27496.ak@suse.de>

On Sun, Nov 11, 2007 at 04:46:26PM +0100, Andi Kleen wrote:
> 
> > My thoughts go more into the direction that we have hundreds of similar
> > cases where e.g. a VFS function might currently only by used by OCFS2
> > and therefore be dead code for most users, and the only maintainable
> > solution will be to solve these at the compiler and/or linker level.
> 
>  -ffunction-sections can mostly do it, but only for non modular kernels
> 
> One problem is that EXPORT_SYMBOL always creates a reference to the function
> even when nothing uses it.
> 
> We would need a weak EXPORT_SYMBOL and some way to check references
> over main kernel and modules. I suppose it could be done as part of modpost
> and then generating a custom linker script that only includes the function
> sections referenced by anybody. But to make this work it would require
> putting all the EXPORT_SYMBOLs into own sections too, but I suppose
> that would be possible.
> 
> In the past we had trouble that the explicit linker scripts mentioning every 
> function section made the linker very slow, but perhaps that's fixed now.

I don't remember the technical details, but Denys Vlasenko posted some 
patches that implemented -ffunction-sections while retaining exports.

Another approach would be calling gcc with "-combine -fwhole-program".

David Woodhouse once sent a whacky patch that implemented this on a 
per-module basis retaining exports.

Much harder, but with the biggest possible savings, would be a 
CONFIG_MODULES=n kernel built with one gcc call.

>...
> The question is if it would be still have a large enough user base without the 
> distribution kernels. If it would be only used by a few users I don't think 
> the maintenance overhead would be worth it.
>...

You forget the big embedded userbase - some even stay at kernel 2.4 
since kernel 2.6 is much bigger.

> -Andi

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


  reply	other threads:[~2007-11-11 16:05 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-09 15:34 [PATCH 0/6] MN10300: Add the MN10300 architecture to Linux kernel [try #5] David Howells
2007-11-09 15:34 ` [PATCH 1/6] Suppress A.OUT library support if !CONFIG_BINFMT_AOUT " David Howells
2007-11-11  2:14   ` Andrew Morton
2007-11-12 15:34     ` David Howells
2007-11-12 19:53       ` Andrew Morton
2007-11-12 22:50         ` SL Baur
2007-11-12 23:14           ` David Howells
2007-11-13  3:09             ` SL Baur
2007-11-13 10:57               ` David Howells
2007-11-13 11:18                 ` Andrew Morton
2007-11-13 12:46                   ` Peter Zijlstra
2007-11-13 20:40                     ` Matt Mackall
2007-11-13 20:46                       ` Peter Zijlstra
2007-11-11 11:25   ` Adrian Bunk
2007-11-11 13:59     ` David Howells
2007-11-11 14:22       ` Adrian Bunk
2007-11-11 15:03         ` David Howells
2007-11-11 15:19           ` Adrian Bunk
2007-11-11 15:46             ` Andi Kleen
2007-11-11 16:05               ` Adrian Bunk [this message]
2007-11-11 16:31               ` David Howells
2007-12-03 15:15     ` David Howells
2007-12-03 16:00       ` Ralf Baechle
2007-12-03 16:17         ` Adrian Bunk
2007-11-09 15:34 ` [PATCH 2/6] MTD: Add support for the SST 39VF1601 flash chip " David Howells
2007-11-09 22:34   ` David Woodhouse
2007-11-09 15:34 ` [PATCH 3/6] USB: net2280 can't have a function called show_registers() " David Howells
2007-11-09 15:34 ` [PATCH 4/6] MN10300: Allocate serial port UART IDs for on-chip serial ports " David Howells
2007-11-09 15:35 ` [PATCH 6/6] MN10300: Add MTD flash support for the ASB2303 board " David Howells
2007-11-10  4:05   ` David Woodhouse
2007-11-11 14:01     ` David Howells
     [not found] ` <20071109153458.20803.10594.stgit@warthog.procyon.org.uk>
2007-11-10  3:53   ` [PATCH 5/6] MN10300: Add the MN10300/AM33 architecture to the kernel " Andrew Morton
2007-11-10 12:18     ` David Howells
2007-11-10 19:43       ` Andrew Morton
2007-11-10 20:02         ` Alan Cox
2007-11-11 14:32         ` David Howells
2007-11-12  7:44         ` Adrian Bunk
2007-11-10 20:09       ` Alan Cox
2007-11-11 14:48         ` David Howells
2007-11-11 15:18           ` Alan Cox
2007-11-11 16:36             ` David Howells
2007-11-11 16:42               ` Alan Cox
2007-11-12 12:19                 ` David Howells
2007-11-11 15:07         ` David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071111160504.GR21669@stusta.de \
    --to=bunk@kernel.org \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=linux-am33-list@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.