From: viro@parcelfarce.linux.theplanet.co.uk
To: Linus Torvalds <torvalds@osdl.org>
Cc: Kendall Bennett <KendallB@scitechsoft.com>, linux-kernel@vger.kernel.org
Subject: Re: Linux GPL and binary module exception clause?
Date: Thu, 4 Dec 2003 19:24:52 +0000 [thread overview]
Message-ID: <20031204192452.GC10421@parcelfarce.linux.theplanet.co.uk> (raw)
In-Reply-To: <Pine.LNX.4.58.0312031614000.2055@home.osdl.org>
On Wed, Dec 03, 2003 at 04:23:33PM -0800, Linus Torvalds wrote:
> Side note: historically, the Linux kernel module interfaces were really
> quite weak, and only exported a few tens of entry-points, and really
> mostly effectively only allowed character and block device drivers with
> standard interfaces, and loadable filesystems.
>
> So historically, the fact that you could load a module using nothing but
> these standard interfaces tended to be a much stronger argument for not
> being very tightly coupled with the kernel.
>
> That has changed, and the kernel module interfaces we have today are MUCH
> more extensive than they were back in '95 or so. These days modules are
> used for pretty much everything, including stuff that is very much
> "internal kernel" stuff and as a result the kind of historic "implied
> barrier" part of modules really has weakened, and as a result there is not
> avery strong argument for being an independent work from just the fact
> that you're a module.
FWIW, it would be very nice if somebody did hard and messy work and
produced lists of in-tree modules using given symbols. Ideally - automated
that, but that won't be easy to do (quite a few are used only via inlined
wrappers and in some cases - under an ifdef; many arch-specific exports
are of that sort).
Aside of "hey, nothing uses that at all" and "only core uses it"
we'd get a bunch of "hmm, we really should've exported higher-level function
instead" and "WTF does that lone driver use this function?". I'd played
with that for fs/* exports and so far results look interesting. I'm using
grep, but that's pretty much hopeless - we have literally thousands of
exported symbols and any manual approach will break on that.
Some approximation might be obtained by building all modules and
doing nm on them, with manual work for non-obvious cases. I've done that
on x86 (allmodconf + enabling whatever could be enabled, even if broken).
Statistics is interesting, to put it mildly.
First of all, there are ~3600 symbols used by some in-tree drivers.
~600 of them are have 10 users or more. ~2000 have only one or two users.
And we have ~7500 EXPORT_... in the tree. Now, that number is inflated by
duplicates between architectures (and other stats are deflated by incomplete
coverage). And yes, there are things that have every reason to be exported,
but only a few modules care to use them.
However, it certainly looks like a large fraction of export list
should go away. Moreover, we probably should introduce
EXPORT_FOR(symbol, module list)
and use it for stuff like jbd poking very deep in buffer.c guts - deeper
than anybody else. Ditto for ipv6 / ipv4 interaction - they really have
a special relationship and it makes no sense whatsoever to treat everything
in TCPv4 guts that happens to be shared with TCPv6 as public export. There's
a lot of cases like that and I suspect that they cover ~50-60% of the in-tree
imports.
Real interface is somewhere around 400-500 symbols and it can be
split into several more or less compact parts. Having more than an order
of magnitude more than that, and having it as a big pile... Not a good
thing(tm), IMO.
next prev parent reply other threads:[~2003-12-04 19:24 UTC|newest]
Thread overview: 258+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-03 21:31 Linux GPL and binary module exception clause? Kendall Bennett
2003-12-03 21:47 ` Arjan van de Ven
2003-12-03 23:33 ` Kendall Bennett
2003-12-03 22:11 ` Richard B. Johnson
2003-12-03 23:33 ` Kendall Bennett
2003-12-03 23:40 ` bill davidsen
2003-12-04 0:00 ` Linus Torvalds
2003-12-04 0:23 ` Linus Torvalds
2003-12-04 6:25 ` Karim Yaghmour
2003-12-06 0:08 ` David Woodhouse
2003-12-06 2:28 ` Larry McVoy
2003-12-06 9:55 ` David Woodhouse
2003-12-06 10:51 ` Geert Uytterhoeven
2003-12-08 18:58 ` Karim Yaghmour
2003-12-09 20:26 ` bill davidsen
2003-12-09 21:46 ` Craig Milo Rogers
2003-12-12 11:36 ` Jamie Lokier
2003-12-12 15:27 ` Bill Davidsen
2003-12-10 14:09 ` Andre Hedrick
2003-12-10 14:25 ` David Woodhouse
2003-12-10 14:46 ` Larry McVoy
2003-12-10 15:05 ` David Woodhouse
2003-12-10 15:11 ` Larry McVoy
2003-12-10 15:49 ` Aron Rubin
2003-12-10 15:59 ` David Woodhouse
2003-12-10 16:06 ` Larry McVoy
2003-12-10 16:22 ` David Woodhouse
2003-12-10 18:38 ` Andre Hedrick
2003-12-04 19:24 ` viro [this message]
2003-12-13 0:11 ` Nix
2003-12-13 0:25 ` viro
2003-12-13 15:01 ` Nix
2003-12-04 0:29 ` Kendall Bennett
2003-12-04 0:52 ` Aaron Smith
2003-12-04 1:47 ` David Lang
2003-12-04 1:20 ` Aaron Smith
2003-12-04 4:48 ` Jamie Lokier
2003-12-04 15:21 ` Jason Kingsland
2003-12-04 15:58 ` Linus Torvalds
2003-12-05 1:58 ` David Schwartz
2003-12-05 2:43 ` Jason Kingsland
2003-12-05 13:09 ` Pat Erley
2003-12-05 18:44 ` Kendall Bennett
2003-12-10 13:06 ` Andre Hedrick
2003-12-05 13:49 ` Maciej Zenczykowski
2003-12-10 13:43 ` Andre Hedrick
2003-12-10 16:07 ` Linus Torvalds
2003-12-10 18:33 ` Andre Hedrick
2003-12-10 19:20 ` Linus Torvalds
2003-12-10 20:15 ` Andre Hedrick
2003-12-10 21:04 ` Ingo Molnar
2003-12-10 21:05 ` Andre Hedrick
2003-12-10 21:17 ` Ingo Molnar
2003-12-10 22:59 ` Andre Hedrick
2003-12-11 0:58 ` Rob Love
2003-12-11 10:56 ` Xavier Bestel
2003-12-11 7:26 ` Rob Landley
2003-12-05 17:29 ` Jason Kingsland
2003-12-05 17:50 ` Linus Torvalds
-- strict thread matches above, loose matches on Subject: below --
2003-12-03 22:58 Xose Vazquez Perez
2003-12-03 23:22 Jason Kingsland
[not found] <YPep.5Y5.21@gated-at.bofh.it>
[not found] ` <Z3AK-Qw-13@gated-at.bofh.it>
2003-12-04 17:05 ` Ihar 'Philips' Filipau
2003-12-04 17:57 ` Thierry Vignaud
2003-12-05 11:11 ` Helge Hafting
2003-12-05 12:12 ` Stefan Smietanowski
2003-12-05 14:51 ` Ihar 'Philips' Filipau
2003-12-04 23:50 Paul Adams
2003-12-05 0:07 ` Nick Piggin
2003-12-05 2:07 ` Kendall Bennett
2003-12-05 15:57 ` Thierry Vignaud
2003-12-05 4:23 ` Peter Chubb
2003-12-05 4:42 ` Nick Piggin
2003-12-05 8:23 ` Peter Chubb
2003-12-05 17:19 ` Linus Torvalds
2003-12-05 18:42 ` Jeremy Fitzhardinge
2003-12-05 5:13 ` Valdis.Kletnieks
2003-12-05 5:26 ` Hua Zhong
2003-12-05 6:34 ` David Schwartz
2003-12-05 6:58 ` Linus Torvalds
2003-12-05 11:16 ` David Schwartz
2003-12-05 13:34 ` Anders Karlsson
2003-12-05 14:03 ` Ryan Anderson
2003-12-05 16:38 ` Shawn Willden
2003-12-05 16:54 ` Arjan van de Ven
2003-12-05 17:03 ` Shawn Willden
2003-12-05 22:36 ` Derek Fawcus
2003-12-05 17:34 ` Linus Torvalds
2003-12-05 17:35 ` Hua Zhong
2003-12-05 18:12 ` Filip Van Raemdonck
2003-12-05 18:37 ` Hua Zhong
2003-12-05 19:56 ` 'Filip Van Raemdonck'
2003-12-05 20:26 ` Hua Zhong
2003-12-06 0:08 ` Filip Van Raemdonck
2003-12-05 19:55 ` David Schwartz
2003-12-05 20:14 ` Linus Torvalds
2003-12-05 21:16 ` Shawn Willden
2003-12-08 15:38 ` Jesse Pollard
2003-12-05 14:59 ` Jesse Pollard
2003-12-05 19:15 ` Kendall Bennett
2003-12-05 18:44 ` Kendall Bennett
2003-12-05 19:09 ` Valdis.Kletnieks
2003-12-05 19:22 ` Arjan van de Ven
2003-12-10 13:52 ` Andre Hedrick
2003-12-10 15:18 ` Linus Torvalds
2003-12-10 15:32 ` Larry McVoy
2003-12-10 16:21 ` Linus Torvalds
2003-12-10 16:34 ` Larry McVoy
2003-12-10 17:10 ` Linus Torvalds
2003-12-10 17:25 ` Chris Friesen
2003-12-10 17:58 ` Linus Torvalds
2003-12-10 17:56 ` Larry McVoy
2003-12-10 18:02 ` Linus Torvalds
2003-12-10 18:08 ` Larry McVoy
2003-12-10 18:17 ` Linus Torvalds
2003-12-10 18:38 ` Larry McVoy
2003-12-10 19:15 ` Linus Torvalds
2003-12-10 18:37 ` Jan-Benedict Glaw
2003-12-10 19:51 ` Hua Zhong
2003-12-10 20:09 ` Andre Hedrick
2003-12-11 1:24 ` Andrew Pimlott
2003-12-11 7:43 ` Rob Landley
2003-12-11 8:11 ` Hua Zhong
2003-12-11 8:37 ` Rob Landley
2003-12-11 18:22 ` Hua Zhong
2003-12-11 21:20 ` Andre Hedrick
2003-12-11 21:59 ` Rob Landley
2003-12-11 22:42 ` Andre Hedrick
2003-12-12 5:39 ` Rob Landley
2003-12-12 7:21 ` Andre Hedrick
2003-12-12 7:39 ` Rob Landley
2003-12-12 7:56 ` Andre Hedrick
2003-12-12 9:27 ` Rob Landley
2003-12-10 18:14 ` David Schwartz
2003-12-10 18:21 ` Linus Torvalds
2003-12-10 19:48 ` Kendall Bennett
2003-12-11 7:32 ` Rob Landley
2003-12-11 14:03 ` Geert Uytterhoeven
2003-12-10 22:49 ` Oliver Hunt
2003-12-10 17:15 ` Hua Zhong
2003-12-10 17:42 ` Linus Torvalds
2003-12-10 19:32 ` Andre Hedrick
2003-12-10 22:43 ` Jason Kingsland
2003-12-10 22:49 ` Andre Hedrick
2003-12-10 23:11 ` Linus Torvalds
2003-12-10 23:24 ` Andre Hedrick
2003-12-10 19:48 ` Kendall Bennett
2003-12-10 21:15 ` viro
2003-12-10 22:36 ` Kendall Bennett
2003-12-10 23:13 ` viro
2003-12-11 15:29 ` Jesse Pollard
2003-12-11 18:47 ` Kendall Bennett
2003-12-11 18:55 ` Nick Piggin
2003-12-11 22:18 ` Jesse Pollard
2003-12-10 22:18 ` Larry McVoy
2003-12-10 22:25 ` Andre Hedrick
2003-12-10 23:38 ` Linus Torvalds
2003-12-11 1:03 ` Larry McVoy
2003-12-11 14:46 ` Ingo Molnar
2003-12-10 23:39 ` Andrea Arcangeli
2003-12-11 17:44 ` Robin Rosenberg
2003-12-11 17:56 ` Valdis.Kletnieks
2003-12-11 18:16 ` Nick Piggin
2003-12-11 18:50 ` Mihai RUSU
2003-12-11 18:37 ` David Schwartz
2003-12-11 12:04 ` David Woodhouse
2003-12-10 17:49 ` Jörn Engel
2003-12-10 18:16 ` Andre Hedrick
2003-12-05 19:25 ` Kendall Bennett
2003-12-05 19:26 ` Linus Torvalds
2003-12-05 15:50 ` Valdis.Kletnieks
2003-12-05 18:44 ` Kendall Bennett
2003-12-06 0:02 ` Maciej Zenczykowski
2003-12-05 18:44 ` Kendall Bennett
2003-12-10 13:16 ` Andre Hedrick
2003-12-10 15:02 ` Jesse Pollard
2003-12-10 20:37 ` Theodore Ts'o
2003-12-11 16:26 ` Jesse Pollard
2003-12-05 13:52 ` Richard B. Johnson
2003-12-05 0:09 ` Oliver Hunt
2003-12-05 10:55 ` Russell King
2003-12-05 0:46 ` Erik Andersen
2003-12-05 0:58 ` Zwane Mwaikambo
2003-12-05 1:03 ` Erik Andersen
2003-12-05 1:21 ` Larry McVoy
2003-12-05 1:30 ` Hua Zhong
2003-12-05 1:58 ` Linus Torvalds
2003-12-06 3:00 ` Larry McVoy
2003-12-06 4:39 ` Linus Torvalds
2003-12-06 5:14 ` Larry McVoy
2003-12-06 5:48 ` Linus Torvalds
2003-12-06 17:14 ` Larry McVoy
2003-12-06 15:38 ` Theodore Ts'o
2003-12-06 16:47 ` Jason Kingsland
2003-12-06 21:30 ` David Schwartz
2003-12-06 21:42 ` Larry McVoy
2003-12-07 13:01 ` Ingo Molnar
2003-12-07 22:11 ` Rob Landley
2003-12-06 14:13 ` Andrew Pimlott
2003-12-06 17:50 ` Larry McVoy
2003-12-06 21:19 ` Theodore Ts'o
2003-12-06 21:45 ` Larry McVoy
2003-12-08 16:34 ` Andrew Pimlott
2003-12-11 12:37 ` David Woodhouse
2003-12-11 12:42 ` Andre Hedrick
2003-12-11 12:58 ` David Woodhouse
2003-12-12 20:26 ` Brian Beattie
2003-12-13 12:03 ` David Woodhouse
2003-12-13 15:04 ` jeff millar
2003-12-13 17:27 ` Gene Heskett
2003-12-11 13:54 ` Andrew Pimlott
2003-12-11 15:12 ` David Woodhouse
2003-12-05 3:58 ` Jason Kingsland
2003-12-05 1:58 ` David Schwartz
2003-12-05 4:58 ` Erik Andersen
2003-12-05 6:34 ` David Schwartz
2003-12-05 6:43 ` Linus Torvalds
2003-12-05 2:07 ` Kendall Bennett
2003-12-05 7:39 ` Stefan Smietanowski
2003-12-05 1:47 ` Linus Torvalds
2003-12-10 12:57 ` Andre Hedrick
2003-12-10 15:14 ` Linus Torvalds
2003-12-10 15:25 ` Larry McVoy
2003-12-10 18:58 ` Andre Hedrick
2003-12-12 19:40 ` Pavel Machek
2003-12-12 22:08 ` Andre Hedrick
2003-12-12 23:06 ` Jamie Lokier
2003-12-12 23:43 ` Pavel Machek
2003-12-15 18:01 ` Adam Sampson
2003-12-15 21:12 ` Andre Hedrick
2003-12-05 11:35 Adam J. Richter
2003-12-05 11:25 ` David Schwartz
2003-12-05 15:36 ` Valdis.Kletnieks
[not found] <732BE51FE9901143AE04411A11CC465602F155F3@evtexc02.tc.fluke.com>
2003-12-05 17:05 ` David Dyck
2003-12-05 18:51 ` Jesse Pollard
2003-12-05 22:43 gary ng
2003-12-05 23:11 ` Linus Torvalds
2003-12-06 0:07 ` gary ng
2003-12-06 12:31 Matt
2003-12-07 2:34 gary ng
2003-12-08 16:08 ` Alex Bennee
2003-12-08 16:26 ` gary ng
2003-12-09 6:20 Paul Zimmerman
2003-12-09 13:22 ` Andrew Walrond
2003-12-09 14:12 ` Dale Whitchurch
2003-12-09 20:47 ` bill davidsen
2003-12-09 23:47 ` David Schwartz
2003-12-10 14:30 ` Jesse Pollard
2003-12-10 14:17 ` Jesse Pollard
2003-12-10 16:10 ` Richard B. Johnson
2003-12-10 17:58 ` Andre Hedrick
2003-12-11 15:01 ` Jesse Pollard
2003-12-10 19:06 Manfred Spraul
[not found] <fa.go3ahvi.h68o2q@ifi.uio.no>
[not found] ` <fa.nk4vl6d.g0181@ifi.uio.no>
2003-12-12 3:03 ` walt
2003-12-18 9:12 Randy Zagar
2003-12-18 9:51 ` Thorsten Glaser
2003-12-18 9:55 ` Daniel Newby
2003-12-18 14:24 ` Jesse Pollard
2003-12-19 7:56 ` Andre Hedrick
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=20031204192452.GC10421@parcelfarce.linux.theplanet.co.uk \
--to=viro@parcelfarce.linux.theplanet.co.uk \
--cc=KendallB@scitechsoft.com \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox