Re: [PATCH 4/4] KBUILD: export-symbol usage report generator

Christoph Hellwig
2006-05-11T13:44:35Z

On Thu, May 11, 2006 at 01:43:27PM +0200, Andi Kleen wrote:
> linuxram@us.ibm.com (Ram Pai) writes:
>
> > From: Ram Pai <linuxram@us.ibm.com>
> >
> > The following patch provides the ability to generate a report of
> > (1) All the exported symbols and their in-kernel-module usage count
> > (2) For each module, lists the modules and their exported symbols, on
> > which it depends.
>
> Very nice.
>
> One thing I always wanted to see was a more focussed EXPORT_SYMBOL.
>
> A lot of symbols are only exported for a single other module (e.g. most
> of the networking exports are for IPv6) but are actually internal
> and shouldn't be messed with by other modules. It would be nice
> if name spaces could be defined that say "this export is only for
> modules in this name space" and then e.g. have IPv6 be in the TCPINTERNALS
> name space and nobody else.
>
> I think adding something like this could clean up the bewildering
> jungle of exports greatly.
>
> _GPL is kind of like that already, but it is not fine grained enough.

I'd go even further and say every symbol should have a category. These
catgories than could get labels such as mostly stable, public but volatile
or internal (the latter is what's oddly named _GPL) now. That way a small
look at a driver can say if it's doing something wrong, e.g. if a network
driver imports symbols from anything but BASE, PCI and NETDEV something
is most likely wrong.