From: Linus Torvalds <torvalds@linux-foundation.org>
To: Daniel Stone <daniel@fooishbar.org>
Cc: David Miller <davem@davemloft.net>,
skeggsb@gmail.com, airlied@linux.ie,
linux-kernel@vger.kernel.org, jbarnes@virtuousgeek.org,
dri-devel@lists.sf.net, mingo@elte.hu, alan@lxorguk.ukuu.org.uk
Subject: Re: [git pull] drm request 3
Date: Fri, 5 Mar 2010 09:23:20 -0800 (PST) [thread overview]
Message-ID: <alpine.LFD.2.00.1003050902330.3788@localhost.localdomain> (raw)
In-Reply-To: <20100305160434.GE2505@tempa>
On Fri, 5 Mar 2010, Daniel Stone wrote:
>
> So you're saying that there's no way to develop any reasonable body of
> code for the Linux kernel without committing to keeping your ABI
> absolutely rock-solid stable for eternity, no exceptions, ever?
I think that's what David ended up saying, but I think he is being _too_
strict.
It's not how we've done other things either. We've changed ABI's over time
many times. And we've even had complete breakage of old tools (although
that is very much reserved for system tools, not regular applications: I
think we've been almost religious about "normal" apps not breaking,
unless there was some really overriding reason like security that forced
us to really remove some interface).
But most of the changes have been extending things, leaving the old
interfaces around (often as wrappers around the new internal world order,
sometimes by effectively having actual duplicated code).
And then the old interface is maintained for quite a while (sometimes
decades, often years, and generally at least for several kernel versions
so that people have time to upgrade, and a distro can generally pick a
newer kernel without having to change anything else).
Sometimes we've done things that really end up requiring new tools. It's
pretty rare, but it does happen. It happens a lot more for "esoteric"
things that aren't every-day-in-your-face (I've seen at least _one_ mutter
about "sysfs" in this thread ;) and might break something like a
temperature sensor, for example.
So the machine might _work_ and you could go for days without even
noticing, but you might have some very specific functionality missing.
Maybe your power meter doesn't work, or maybe you need to upgrade your
kernel profiler to get good profiles again. Things like that.
I suspect you as an X person know this very well, in fact. X itself has
carried along a _lot_ of cruft exactly like this, that you guys have been
removing only in the last few years - sometimes after decades of it being
there. The whole switch to modern font handling is an obvious example of a
_major_ fundamental feature change like that.
So in general, what the kernel strives for is that very kind of "the old
model will still work - but it might be slow and emulated on top of a new
way of dong things, and not get a lot of attention any more".
And sometimes, there's really no good way of maintaining two interfaces at
the kernel level, and then you have the downstream tools that have to
learn to pick either the old or the new one, so that the tool still works
regardless.
And again, the old code _eventually_ bitrots or gets cleaned up, but what
you really really want to avoid is to have a flag-day when you switch from
one to the other, and you can't switch between adjacent versions of the
kernel.
In the 2.4.x/2.6.x split, for example, we did have system tools that
needed to be upgraded if you came from a 2.4.x environment. You can still
see signs of that in the kernel tree: we have that whole
Documentation/Changes file that _still_ remains in our tree, even though
it's purely historical.
But if you look at that Documentation/Changes file, I don't think there is
_any_ flag-day issue except for the removal of "devfs". People _still_
talk about devfs in hushed tones. Everything else is about having to
upgrade system tools _before_ upgrading the kernel (iow, they still worked
on 2.4.x, but you needed recent enough versions of them to compile and run
a 2.6.x kernel).
In other words, it wasn't a "flag day" (apart from the already mentioned
devfs users, and possibly something else I can't think of). It was an
upgrade, yes, and it required some other things to be recent, but you
could go back-and-forth between kernels if you had to.
(Of course, it's now many years since that, so maybe my rose-colored
glasses makes me forget the pain involved. And I obviously personally
never made the whole 2.4.x -> 2.6.x jump, since I'd been running the
development kernels in between. So maybe I forgot some painful part).
Linus
next prev parent reply other threads:[~2010-03-05 17:25 UTC|newest]
Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-02 23:56 [git pull] drm request 3 Dave Airlie
2010-03-04 18:18 ` Linus Torvalds
2010-03-04 18:27 ` Matt Turner
2010-03-04 18:36 ` Jesse Barnes
2010-03-04 18:39 ` Jesse Barnes
2010-03-04 18:51 ` Linus Torvalds
2010-03-04 18:56 ` Jesse Barnes
2010-03-04 19:08 ` Linus Torvalds
2010-03-04 19:25 ` Dave Airlie
2010-03-04 20:01 ` Linus Torvalds
2010-03-04 22:06 ` Dave Airlie
2010-03-05 0:08 ` Linus Torvalds
2010-03-05 0:28 ` Ben Skeggs
2010-03-05 0:41 ` Linus Torvalds
2010-03-05 0:56 ` Luc Verhaegen
2010-03-05 1:08 ` Linus Torvalds
2010-03-05 1:16 ` Luc Verhaegen
2010-03-05 1:22 ` Linus Torvalds
2010-03-05 1:20 ` Linus Torvalds
2010-03-05 1:28 ` Dave Airlie
2010-03-05 5:17 ` Linus Torvalds
2010-03-05 5:22 ` Dave Airlie
2010-03-05 5:30 ` Linus Torvalds
2010-03-05 5:42 ` Linus Torvalds
2010-03-05 1:19 ` Upstream first policy Kyle McMartin
2010-03-05 1:28 ` Linus Torvalds
2010-03-05 2:00 ` [git pull] drm request 3 Tony Luck
2010-03-05 20:34 ` Felipe Contreras
2010-03-05 6:49 ` Ingo Molnar
2010-03-05 7:06 ` Pekka Enberg
2010-03-05 7:17 ` "C. Bergström"
2010-03-05 7:53 ` Ingo Molnar
2010-03-05 15:18 ` Linus Torvalds
2010-03-05 7:44 ` Ingo Molnar
2010-03-05 7:58 ` Dave Airlie
2010-03-05 8:16 ` Stephane Marchesin
2010-03-05 10:00 ` Making Xorg easier to test (was Re: [git pull] drm request 3) Carlos R. Mafra
2010-03-05 12:54 ` Valdis.Kletnieks
2010-03-05 15:22 ` Matt Turner
2010-03-05 15:41 ` Daniel Stone
2010-03-05 15:49 ` Making Xorg easier to test David Miller
2010-03-05 16:03 ` Alan Cox
2010-03-05 16:06 ` Daniel Stone
2010-03-05 17:50 ` Xavier Bestel
2010-03-05 17:54 ` David Miller
2010-03-05 18:02 ` Jesse Barnes
2010-03-05 18:05 ` David Miller
2010-03-05 15:53 ` Making Xorg easier to test (was Re: [git pull] drm request 3) Linus Torvalds
2010-03-05 16:11 ` Daniel Stone
2010-03-05 16:30 ` Linus Torvalds
2010-03-08 8:57 ` Daniel Stone
2010-03-05 16:26 ` Jesse Barnes
2010-03-05 13:55 ` [git pull] drm request 3 Luc Verhaegen
2010-03-05 16:21 ` Jesse Barnes
2010-03-05 12:38 ` Alan Cox
2010-03-05 14:37 ` David Miller
2010-03-05 14:46 ` Mike Galbraith
2010-03-05 18:05 ` Ingo Molnar
2010-03-05 15:09 ` Alan Cox
2010-03-05 15:11 ` David Miller
2010-03-05 15:17 ` Daniel Stone
2010-03-05 15:26 ` David Miller
2010-03-05 15:40 ` Daniel Stone
2010-03-05 15:48 ` David Miller
2010-03-05 16:02 ` Alan Cox
2010-03-05 16:05 ` David Miller
2010-03-05 17:58 ` Younes Manton
2010-03-05 16:13 ` Linus Torvalds
2010-03-05 16:23 ` Alan Cox
2010-03-05 16:44 ` Linus Torvalds
2010-03-05 17:04 ` Alan Cox
2010-03-05 17:19 ` tytso
2010-03-05 16:04 ` Daniel Stone
2010-03-05 16:06 ` David Miller
2010-03-05 16:31 ` Alan Cox
2010-03-05 17:36 ` Jerome Glisse
2010-03-05 16:46 ` tytso
2010-03-05 19:38 ` Corbin Simpson
2010-03-05 21:01 ` Corbin Simpson
2010-03-05 21:51 ` tytso
2010-03-05 23:50 ` Tilman Schmidt
2010-03-05 17:23 ` Linus Torvalds [this message]
[not found] ` <hmra63$898$1@xyzzy.farnsworth.org>
2010-03-06 6:17 ` Dale Farnsworth
2010-03-06 17:21 ` Valdis.Kletnieks
2010-03-05 15:56 ` Luca Barbieri
2010-03-05 16:13 ` Alan Cox
2010-03-05 16:19 ` Linus Torvalds
2010-03-05 16:38 ` Alan Cox
2010-03-05 20:59 ` Felipe Contreras
2010-03-05 16:25 ` Luca Barbieri
2010-03-05 15:42 ` Alan Cox
2010-03-05 16:07 ` Linus Torvalds
2010-03-05 17:42 ` Jeff Garzik
2010-03-05 19:11 ` Justin P. mattock
2010-03-04 19:33 ` Jesse Barnes
2010-03-04 19:12 ` Matthew Garrett
2010-03-04 18:45 ` Linus Torvalds
2010-03-04 18:43 ` Linus Torvalds
2010-03-04 18:50 ` Matthew Garrett
2010-03-04 18:55 ` Linus Torvalds
2010-03-04 19:01 ` Linus Torvalds
2010-03-04 19:04 ` Matthew Garrett
2010-03-04 19:14 ` Linus Torvalds
2010-03-04 19:25 ` Matthew Garrett
2010-03-04 19:41 ` Linus Torvalds
2010-03-04 19:53 ` Matthew Garrett
2010-03-04 20:07 ` Linus Torvalds
2010-03-04 20:46 ` Matthew Garrett
2010-03-04 20:57 ` Stephane Marchesin
2010-03-04 22:54 ` Linus Torvalds
2010-03-04 23:03 ` Dave Airlie
2010-03-04 23:19 ` Linus Torvalds
2010-03-04 23:27 ` Michel Dänzer
2010-03-04 23:28 ` Linus Torvalds
2010-03-04 23:35 ` Dave Airlie
2010-03-04 23:53 ` Linus Torvalds
2010-03-05 0:24 ` Ed Tomlinson
2010-03-05 0:24 ` Kyle McMartin
2010-03-04 23:28 ` Dave Airlie
2010-03-04 23:05 ` Jesse Barnes
2010-03-05 12:26 ` Alan Cox
2010-03-04 22:28 ` Adam Jackson
2010-03-04 23:03 ` Linus Torvalds
2010-03-04 23:14 ` Stephane Marchesin
2010-03-05 12:29 ` Alan Cox
2010-03-05 16:18 ` Adam Jackson
2010-03-04 19:32 ` Jeff Garzik
2010-03-04 22:18 ` Adam Jackson
2010-03-04 22:21 ` Jeff Garzik
2010-03-04 22:59 ` Adam Jackson
2010-03-05 11:24 ` Jeff Garzik
2010-03-05 15:46 ` Adam Jackson
2010-03-05 1:47 ` Robert Hancock
2010-03-05 12:21 ` Alan Cox
2010-03-05 19:30 ` Eric Anholt
2010-03-05 20:39 ` Luca Barbieri
2010-03-06 15:23 ` Sergio Monteiro Basto
2010-03-06 17:40 ` Linus Torvalds
2010-03-06 19:06 ` Sergio Monteiro Basto
2010-03-06 19:28 ` Linus Torvalds
2010-03-06 20:49 ` tytso
2010-03-06 20:52 ` Alan Cox
2010-03-06 22:38 ` tytso
2010-03-04 21:21 ` Maarten Maathuis
2010-03-04 21:22 ` Maarten Maathuis
2010-03-04 21:27 ` Maarten Maathuis
-- strict thread matches above, loose matches on Subject: below --
2010-03-05 22:18 Jonas Ritz
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=alpine.LFD.2.00.1003050902330.3788@localhost.localdomain \
--to=torvalds@linux-foundation.org \
--cc=airlied@linux.ie \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=daniel@fooishbar.org \
--cc=davem@davemloft.net \
--cc=dri-devel@lists.sf.net \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=skeggsb@gmail.com \
/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