LWN.net Logo

Some development model notes

There has been an increase in complaints about the 2.6 development model recently. Some observers are dismayed by the continued high rate of change in 2.6, and have posted calls for the creation of a 2.7 branch and restricting 2.6 to critical bug fixes only. Failure to separate development and maintenance in this way, it is said, hurts the reputation of the Linux kernel and subjects users to needless regressions.

The interesting thing with this discussion is that the people objecting to the current development mode have not been able to point to much in the way of specific problems that have resulted from it. A few specific bugs have been listed, but most of those have been around for some time and cannot be said to have resulted from recently-merged new features. The only complaint which holds water might be this one regarding the plight of some out-of-tree kernel development project (PaX in particular). PaX, it seems, is stuck at 2.6.7 because its developers have not yet been able to respond to subsequent changes in internal interfaces.

This argument, of course, does not get very far with most kernel developers. There is an increasing amount of pressure to get out-of-tree projects to submit their code and become part of the mainline tree. Code which is in the mainline gets fixed (usually) when internal interfaces change, but only the original developers can maintain external code. So the standard answer to this sort of complaint is "merge your patches." Changes in the development model to accommodate out-of-tree projects are unlikely.

Not every 2.6 kernel release has been 100% stable, but the same can be said of previous stable kernel series as well. What is different this time is that 2.6 has a great many new features and improvements which would not have been merged under the older model. Many of those improvements would, instead, have been backported by distributors and shipped as part of the "stable" kernel anyway. Under the new scheme, those patches are merged into the mainline, are debugged by everybody involved, and are available to all users. It seems unlikely that most users truly wish to go back to the old days, when distributors shipped highly divergent kernels with (literally) hundreds of patches.

There are occasional requests for bugfix-only "point" releases for the major 2.6 kernels. Rather than wait for 2.6.10, and take all of the other changes which come with that kernel, some people wish for a 2.6.9.1 (and so on) with just the important fixes. The standard response to that request is that anybody can create and maintain such a tree. So far, however, there has not been sufficient demand for this tree to motivate somebody to actually do the work. (It should be noted, though, that Alan Cox has restarted posting his "-ac" patches, which contain fixes that are, in his opinion, important).

All of the above distracts from the real development model discussion: what Linus should call his intermediate releases. There is a steady stream of objections to the "-rc" scheme, since, in fact, very few such kernels are actually release candidates. Linus pondered the issue, but decided to call the first 2.6.10 prepatch 2.6.10-rc1 anyway:

And the fact is, I can't see the point. I'll just call it all "-rcX", because I (very obviously) have no clue where the cut-over-point from "pre" to "rc" is, or (even more painfully obviously) where it will become the final next release. So to not overtax my poor brain, I'll just call them all -rc releases, and hope that developers see them as a sign that there's been stuff merged, and we should start calming down and seeing to the merged patches being stable soon enough.

So the -rc names will continue for the foreseeable future.


(Log in to post comments)

Some development model notes

Posted Oct 28, 2004 9:43 UTC (Thu) by Frej (subscriber, #4165) [Link]

I can't see why they can't try short timebased releases then. I know the kernel is a much different project than other open source projects.

"If a feature isn't ready/stable for the freeze back it out."
This works when there is a short time untill the next stable release occurs.

It works so well for GNOME and KDE.

Some development model notes

Posted Oct 28, 2004 10:56 UTC (Thu) by zooko (subscriber, #2589) [Link]

I can't complain about 2.6 giving me problems, but that's because I haven't tried 2.6 yet. I'm waiting until it stabilizes in the sense that it has received significant "test and debug" attention from developers while simultaneously receiving zero "add features and re-organize" attention.

Saying "We haven't heard users complaining about it breaking, even though we just added a whole bunch of new and rewritten code." does not persuade me that I should take the risk of upgrading from my reliable old 2.4 kernel.

Linux Counter Project's kernel version count

Some development model notes

Posted Oct 28, 2004 13:11 UTC (Thu) by iabervon (subscriber, #722) [Link]

I've been running 2.6 on 2 machines for quite some time (one since 2.6.0, one since ~April), and haven't had any problems with its stability. In fact, the only kernel bug I've encountered was on another machine running 2.4.26, and I identified it as a kernel issue in part by finding that it didn't happen in 2.6.4 (evidentally, it was fixed before 2.6.0, unless the Changelog lines were not informative); I applied a patch from 2.4.27, which seemed to be a backport, to fix it. So it looks to me like 2.4 is essentially just stale at this point, and that 2.6 has more effective debugging.

I do agree that the mainline unmarked releases have not been thoroughly tested upon release. It would be nice if Linus would delegate assigning version numbers to releases to someone else. But using an unmarked release after it has been around for a little while is quite reliable.

Some development model notes

Posted Oct 29, 2004 18:39 UTC (Fri) by NAR (subscriber, #1313) [Link]

and haven't had any problems with its stability.

Feel yourself lucky. umount crashes my 2.6.9 kernel about 50% of the time at shutdown. OK, the machine is supposed to be turned off after that anyway, so it's not a big problem but it could be really annoying with an ext2 filesystem fsck'ing at next boot (fortunately I use ext3). I really should google about this problem...

Bye,NAR

Some development model notes

Posted Oct 28, 2004 18:10 UTC (Thu) by tjc (subscriber, #137) [Link]

Thanks for the Linux Counter kernel link. It's interesting that over 20% of the systems counted are running Debian 2.4.18-bf2.4! Time for an upgrade...

Some development model notes

Posted Oct 28, 2004 12:31 UTC (Thu) by lacostej (guest, #2760) [Link]

One of the reason behind this new model was to have distributions use a more or less stock kernel. Anyone has information on whether distributions now patch less their kernels than before?

Simple stats on Mandrake Kernels

Posted Oct 28, 2004 15:52 UTC (Thu) by alex (subscriber, #1355) [Link]

[alex@cambridge SOURCES]$ bunzip2 -c linux-2.4.25-q2.tar.bz2 | tar -tv | grep "patches" | wc -l
545
and for 2.6
[alex@cambridge SOURCES]$ bunzip2 -c linux-2.6.3-q7.tar.bz2 | tar -tv | grep "patches" | wc -l
274
However not entirely unexpected as there are a lot of backported features in the 2.4 kernel that where 2.6 features. I suspect as more of the desktop "features" make it into the mainline the more patches will drop out.

Simple stats on Mandrake Kernels

Posted Oct 28, 2004 16:01 UTC (Thu) by alex (subscriber, #1355) [Link]

However the Mandrake Cooker kernel has jumped ahead
[alex@cambridge SOURCES]$ bunzip2 -c linux-2.6.8.1-q10.tar.bz2 | tar -tv | grep "patches" | wc -l
428
So the answer would seem to be no, not yet.

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds