From: Rob Landley <landley@trommello.org>
To: Linus Torvalds <torvalds@transmeta.com>,
Mike Fedyk <mfedyk@matchmail.com>
Cc: Stephan von Krawczynski <skraw@ithnet.com>,
Dominik Kubla <kubla@sciobyte.de>, <marcelo@conectiva.com.br>,
<linux-kernel@vger.kernel.org>
Subject: Re: [RFC] 2.5/2.6/2.7 transition [was Re: Linux 2.4.16-pre1]
Date: Mon, 26 Nov 2001 12:44:58 -0500 [thread overview]
Message-ID: <0111261244580G.02001@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.33.0111251946400.9764-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.33.0111251946400.9764-100000@penguin.transmeta.com>
On Sunday 25 November 2001 22:58, Linus Torvalds wrote:
> > 1) Develop 2.5 until it is ready to be 2.6 and immediately give it over
> > to a maintainer, and start 2.7.
>
> I'd love to do that, but it doesn't really work very well. Simply because
> whenever the "stable" fork happens, there are going to be issues that the
> bleeding-edge guard didn't notice, or didn't realize how they bite people
> in the real world.
>
> So I could throw a 2.6 directly over the fence, and start a 2.7 series,
> but that would have two really killer problems
>
> (a) I really don't like giving something bad to whoever gets to be
> maintainer of the stable kernel. It just doesn't work that way:
> whoever would be willing to maintain such a stable kernel would be a
> real sucker and a glutton for punishment.
>
> (b) Even if I found a glutton for punishment that was intelligent enough
> in other ways to be a good maintainer, the _development_ tree too
> needs to start off from a "known reasonably good" point. It doesn't
> have to be perfect, but it needs to be _known_.
Think in terms of the concept of "patch pressure". Lots of patches out
there, trying to get into the tree. They WILL have an effect on development.
Way back when, Linux got off the ground so fast in large part because it
grounded out Minix's patch pressure. Andrew Tanenbaum wouldn't integrate
patches into his codebase, so the pressure built up and up until it found
some place to leak out: your term program. (The GNU project had a similar
problem because RMS insists copyrights be signed over to him on paper, and
that creates a lot of friction which makes integration hardware and increases
patch pressure. Linux was an outlet for the frustrations of the developers
of TWO unix clone development projects. And even a couple of people fed up
with Bill Jolitz' inertia on BSD...)
A "stable" series with no development branch seems to work well for about
three months. All the developers are focused on bug fixing and stabilization
due to lack of options. But beyond that, the "herding cats" aspect of
development builds up, developers get bored, they've implemented new ideas
anyway which aren't being integrated and are taking up more and more of their
attention, private trees diverge...
Patch pressure.
I submit that if the stable tree hasn't calmed down after three or four
months, opening a development branch may in fact HELP the situation, and
stabilize things faster. You need to vent the patch pressure.
If you don't, you'll get megabytes of diffs in Alan Cox's tree that aren't in
yours, you'll get the Functionally Overloaded Linux Kernel (a clear symptom:
a kernel aimed at solely at doing the cleanup work integrating outside
patches into a single tree, whether they work or not...), you'll get more
trees like Andrea Arcangelli's becoming widely used... The end result is not
focusing development effort, it's scattering it more. Refusing to integrate
patches won't prevent them from being created, maintained, applied by system
vendors... It just means developers have to maintain more version state in
their heads.
Trying to confine people's attention to a single tree only works until the
patch pressure builds up to a certain point. Beyond that, it can't be
contained and if you don't give it an outlet it'll find one. The end result
will be MORE scattered, MORE chaotic, and less useful. On the other hand,
the presense of a development tree doesn't stop the "stable" tree from being
interesting. Bugs found in 2.2 are still fixed. 2.4 is still compared with
2.2 when things go strange. And code from the development fork is backported
to the last stable version all the time.
Point for consideration: for a while (just before the ric->andrea VM switch,
say 2.4.9), alan's tree was closer to stabilizing the VM than yours. Alan
had also integrated WAY more stuff than you had. People were ALREADY dealing
with two trees (Alan's and yours) which had fairly widely diverged. How
would having an active development branch with different development and
stable maintainers have been worse than what DID happen?
> For good of for bad, we actually have that now with 2.4.x - the system
> does look fairly stable, with just some silly problems that have known
> solutions and aren't a major pain to handle. So the 2.5.x release is off
> to a good start, which it simply wouldn't have had if I had just cut over
> from 2.4.0.
How is backporting stable code from 2.5->2.4 much different than forward
porting bug fixes and stabilizations from 2.4->2.5? As long as everybody
understands what got fixed and why...
> The _real_ solution is to make fewer fundamental changes between stable
> kernels, and that's a real solution that I expect to become more and more
> realistic as the kernel stabilizes. I already expect 2.5 to have a _lot_
> less fundamental changes than the 2.3.x tree ever had - the SMP
> scaliability efforts and page-cachification between 2.2.x and 2.4.x is
> really quite a big change.
That's the old argument for a faster release cycle again. It's still easier
said than done. In theory, if 2.5 had opened with the new andrea VM (instead
of 2.4.10), had proven itself superior in 3 months, it could have been closed
stabilizied and called 2.6 after 6 months. In the real world, that won't
happen, but the forces making that NOT happen still apply to the current
situation.
This is another chicken and egg problem. A temporary pause in development
(for stabilization) can indeed drop patch pressure by getting developers to
cross their legs and hold it. But only if developers believe it really is
temporary. Your development process has kind of FUDded itself on that front,
historically speaking...
If you don't let development and stabilization overlap, then pressure to
integrate new patches will never stop (something Alan is historically better
at saying no to than you are). The longer they're blocked, the greater they
get. At some point, giving them a known outlet makes more sense to me than
trying to put one more finger in the dike. Your mileage probably does vary...
> But you also have to realize that "fewer fundamental changes" is a mark of
> a system that isn't evolving as quickly, and that is reaching middle age.
> We are probably not quite there yet ;)
Slower development is not necessarily better development. If we wanted slow
and careful changes that were fully documented we'd be using the IBM software
development procedure manual from the 1980's. That simply doesn't work.
Getting developers to hold back with no development branch outlet (other than
FOLK, Alan's tree, or private CVS) didn't stop this stabilization cycle from
taking almost a full year. I'm not sure tightening the restrictions in this
area will actually improve matters...
> Linus
Rob
next prev parent reply other threads:[~2001-11-26 20:49 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-24 18:39 Linux 2.4.16-pre1 Marcelo Tosatti
2001-11-24 18:40 ` Marcelo Tosatti
2001-11-24 20:36 ` Phil Sorber
2001-11-24 19:44 ` Marcelo Tosatti
2001-11-24 21:14 ` Linus Torvalds
2001-11-24 21:32 ` H. Peter Anvin
2001-11-24 22:04 ` François Cami
2001-11-26 0:49 ` Horst von Brand
2001-11-26 0:51 ` H. Peter Anvin
2001-11-26 17:50 ` Alan Cox
2001-11-26 18:08 ` H. Peter Anvin
2001-11-26 0:51 ` David Weinehall
2001-11-26 0:53 ` H. Peter Anvin
2001-11-25 1:56 ` Patrick McFarland
2001-11-25 2:12 ` Patrick McFarland
2001-11-25 2:34 ` war
2001-11-25 2:41 ` Patrick McFarland
2001-11-25 3:05 ` Mohammad A. Haque
2001-11-25 21:55 ` Patrick McFarland
2001-11-26 12:06 ` Martin Persson
2001-11-26 14:26 ` David Lang
2001-11-26 16:55 ` Alan Cox
2001-11-26 16:58 ` Dominik Kubla
2001-11-26 15:38 ` M. Edward (Ed) Borasky
2001-11-26 18:12 ` J Sloan
2001-11-25 4:10 ` J Sloan
2001-11-25 21:58 ` Patrick McFarland
2001-11-25 22:57 ` J Sloan
2001-11-25 23:11 ` Patrick McFarland
2001-11-26 0:26 ` Patrick McFarland
2001-11-26 0:31 ` Patrick McFarland
2001-11-26 0:39 ` CaT
2001-11-25 4:23 ` Victor Yodaiken
2001-11-25 3:04 ` John Alvord
2001-11-26 18:13 ` Alan Cox
2001-11-26 18:09 ` H. Peter Anvin
2001-11-24 20:58 ` Ryan Cumming
2001-11-24 22:21 ` H. Peter Anvin
2001-11-24 22:35 ` kernel.org maintenance Ahmed Masud
2001-11-24 22:56 ` Linux 2.4.16-pre1 Mohammad A. Haque
2001-11-24 21:09 ` Marc A. Ohmann
2001-11-24 19:54 ` Marcelo Tosatti
2001-11-24 21:13 ` Arnaldo Carvalho de Melo
2001-11-24 23:32 ` F.H. Bulthuis
2001-11-24 23:37 ` Rik van Riel
2001-11-24 23:47 ` F.H. Bulthuis
2001-11-25 13:34 ` Dominik Kubla
2001-11-25 14:15 ` Stephan von Krawczynski
2001-11-25 18:07 ` Tobias Ringstrom
2001-11-25 18:17 ` Linus Torvalds
2001-11-25 19:16 ` Stephan von Krawczynski
2001-11-25 22:07 ` Patrick McFarland
2001-11-25 19:27 ` Alex Bligh - linux-kernel
2001-11-25 22:13 ` Arnaldo Carvalho de Melo
2001-11-25 22:18 ` Patrick McFarland
2001-11-25 22:26 ` Arnaldo Carvalho de Melo
2001-11-25 22:31 ` Arnaldo Carvalho de Melo
2001-11-26 1:16 ` Mohammad A. Haque
2001-11-26 1:33 ` Patrick McFarland
2001-11-26 2:45 ` Mohammad A. Haque
2001-11-26 2:50 ` Horst von Brand
2001-11-27 0:47 ` Patrick McFarland
2001-11-27 1:01 ` Rik van Riel
2001-11-27 1:04 ` Patrick McFarland
2001-11-27 1:02 ` Andre Hedrick
2001-11-26 10:44 ` Rik van Riel
2001-11-26 6:57 ` Martin Eriksson
2001-11-25 22:28 ` François Cami
2001-11-25 22:36 ` Patrick McFarland
2001-11-25 22:40 ` Patrick McFarland
2001-11-26 0:20 ` Andrew Pimlott
2001-11-26 0:56 ` Patrick McFarland
2001-11-26 1:16 ` Phil Oester
2001-12-04 20:28 ` The Doctor What
2001-12-04 20:51 ` Rik van Riel
2001-11-25 23:53 ` [RFC] 2.5/2.6/2.7 transition [was Re: Linux 2.4.16-pre1] Mike Fedyk
2001-11-26 3:58 ` Linus Torvalds
2001-11-26 5:33 ` Mike Fedyk
2001-11-26 10:59 ` Rik van Riel
2001-11-26 14:58 ` jlnance
2001-11-26 18:18 ` H. Peter Anvin
2001-11-26 12:41 ` Horst von Brand
2001-11-26 19:35 ` Andrew Morton
2001-11-26 17:44 ` Rob Landley [this message]
2001-11-26 21:08 ` Alan Cox
2001-11-26 21:42 ` Rob Landley
2001-11-26 23:52 ` Rob Landley
2001-11-27 3:40 ` Johan Kullstam
2001-11-26 8:13 ` John Alvord
2001-11-25 14:39 ` Linux 2.4.16-pre1 Florian Weimer
2001-11-25 14:51 ` Russell King
2001-11-25 14:58 ` Florian Weimer
2001-11-25 15:06 ` Alexander Viro
2001-11-25 15:14 ` Bruce Harada
2001-11-25 21:44 ` Teodor Iacob
2001-11-25 21:24 ` Thiago Rondon
2001-11-25 21:51 ` Arnaldo Carvalho de Melo
2001-11-26 17:07 ` vda
2001-11-26 16:36 ` Charles Marslett
2001-11-27 4:30 ` Mike Fedyk
2001-11-27 8:59 ` Adrian Bunk
-- strict thread matches above, loose matches on Subject: below --
2001-11-26 12:26 [RFC] 2.5/2.6/2.7 transition [was Re: Linux 2.4.16-pre1] willy tarreau
2001-11-26 14:54 ` Horst von Brand
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=0111261244580G.02001@localhost.localdomain \
--to=landley@trommello.org \
--cc=kubla@sciobyte.de \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=mfedyk@matchmail.com \
--cc=skraw@ithnet.com \
--cc=torvalds@transmeta.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