|
|
Subscribe / Log in / New account

The stable kernel process

By Jonathan Corbet
November 4, 2015

2015 Kernel Summit
Sasha Levin maintains the 3.18 stable kernel series for Oracle. At the 2015 Kernel Summit, he led a session discussing the process of creating stable kernels in general and how it can be made more robust. The session ended with a surprise decision on the next long-term support kernel, but, first, Sasha wanted to talk about the problem of too many bugs getting through to kernels that are supposed to not acquire new problems.

In particular, Sasha said, the stable trees often end up pulling in commits that, in truth, are not good enough for the mainline kernel in general (but which land in mainline anyway). Then distributors pick up the stable release and ship new bugs to users. It is not clear what can be done about this problem; the stable maintainers cannot, in general, delay fixes for months to see how well they work. He suggested that, maybe, developers could rank commits by both urgency and "scariness." But Greg Kroah-Hartman, who maintains several stable kernels at any given time, said this would not work; it's the "obviously correct" patches that turn out to be broken in the end.

Beyond that, Greg said, what often happens is that developers will revert a patch that turns out to be broken but forget to tell the stable maintainers about it. James Bottomley asked if it might help to avoid shipping stable updates during the merge window when, presumably, most of the buggy patches are merged. Greg replied that he had tried that and didn't see any difference in the results. Buggy patches can show up at any time.

Sasha complained that there is almost no testing of stable updates at all. He would like to work more closely with the distributors and get them to ship "proposed" updates for wider testing. When asked how many regressions he is talking about, he said there were one or two per release. Greg suggested that number was actually pretty good given the number of patches [Sasha Levin] being shipped, but Sasha disagreed. When asked how many complaints he gets, he said one comes in every few weeks, usually for a problem that has already been fixed in the mainline.

Olof Johannson asked whether there should be -rc releases for the stable updates. Greg replied that, with a stable update coming out about once per week, there is simply no time for -rc releases.

Sasha then turned to a recent complaint of Greg's: there are too many stable kernels and too many stable maintainers out there. Greg said that we now have a situation where people don't know which stable kernel to use. Almost nobody uses more than one, and the benefit to the community as a whole is rather small. He said that Debian does benefit from the maintenance of the 3.2 kernel by Ben Hutchings, but that is the exception rather than the rule.

There was a question about whether the next stable release could be announced ahead of time, since that would allow distributors and other users to plan accordingly. Greg said that, in the past, such announcements have led to everybody trying to push crap into the mainline to get it into the stable release. It was suggested that there might be less pressure to do so now, given that most distributions do not use the long-term releases supported by Greg. The system-on-chip trees do use those releases, though.

How about making 4.4 the next stable kernel? It is too late at this point to queue up a bunch of half-baked code to go in, so that could be a relatively safe announcement to make. Announcing the stable release ahead of time could improve the predictability of the whole process. In the end Greg agreed; he has since announced that the next long-term stable kernel will, indeed, be 4.4.

That led to concerns about Greg maintaining too many kernels. It is about time to drop support for 3.10, though; evidently Willy Tarreau will be picking up extra-long-term maintenance of that kernel for those who want it. Some users, it was said, would really like to have 20-year support for their kernels, but volunteers for that task were scarce in the room.

Index entries for this article
ConferenceKernel Summit/2015


to post comments

The stable kernel process

Posted Nov 5, 2015 16:01 UTC (Thu) by joshhunt (subscriber, #49917) [Link] (4 responses)

Was there any particular reason 4.4 was chosen, or did it just happen to be the next release and there was a request to choose a release ahead of time and so that was it? Also wondering if the announcements will be coming out around this time of year now? This is about 6 mths sooner than the last few LTS announcements.

The stable kernel process

Posted Nov 5, 2015 16:22 UTC (Thu) by johill (subscriber, #25196) [Link]

There was quite a bit of discussion about when would be a good time to announce/have an LTS kernel - with various folks having various cut-off dates for their products.

I *think* that factored in somehow, but I must admit that I didn't quite follow the back-and-forth.

The stable kernel process

Posted Nov 5, 2015 21:13 UTC (Thu) by neilbrown (subscriber, #359) [Link] (2 responses)

> Was there any particular reason 4.4 was chosen

The way I remember it, some people said "Q1 is good", Greg said "3.14 was Q1". People responded "Yeah, only just". Someone said "4.4 should be out early Q1". So in the context of "maybe we should announce the long term release ahead of time and see what happens", 4.4 was chosen.

The stable kernel process

Posted Nov 6, 2015 14:31 UTC (Fri) by broonie (subscriber, #7078) [Link] (1 responses)

Yes, the goal is to get something that comes out as early as we can get in the year so that people have a chance to jump on it early enough in their development cycle and v4.4 comes out in roughly the right timeframe.

The stable kernel process

Posted Nov 6, 2015 15:25 UTC (Fri) by joshhunt (subscriber, #49917) [Link]

Great, thanks for the info. This is very helpful.

The stable kernel process

Posted Nov 5, 2015 19:53 UTC (Thu) by swilmet (subscriber, #98424) [Link] (2 responses)

If I understand correctly the workflow (I'm not a kernel developer), the subsystem maintainers send patches to backport to the maintainer of the stable branch, and then that latter maintainer pushes the backports on the branch after doing some testing.

Instead of having one maintainer for a stable branch, why not allowing each subsystem maintainer to push the backports directly on the stable branches? (after testing the backports of course)

The maintainer of the stable branch would post-review the commits pushed, and create new releases regularly.

Because the subsystem maintainers better know (and have the appropriate hardware) to test the backports (and doing so when cherry-picking the commits).

The stable kernel process

Posted Nov 5, 2015 20:11 UTC (Thu) by gregkh (subscriber, #8) [Link] (1 responses)

The "workflow" is documented in the kernel file, Documentation/stable_kernel_rules.txt if you want to take a look at them.

And the goal is to not have to add any additional burden to any existing subsystem maintainer, other than having them add a single line to a patch, forcing them to have a separate branch and test things would be something that no one would ever go for, myself included, as that's not what you want maintainers to be working on.

The stable kernel process

Posted Nov 6, 2015 9:28 UTC (Fri) by swilmet (subscriber, #98424) [Link]

Yeah, it depends on what you want to prioritize. With more maintainers, it is possible though. Testing kernel changes takes of course more time than e.g. a GNOME module. But in GNOME, each module maintainer is responsible to backport the bug fixes, there is usually no maintainer assigned for a stable branch. That's why I thought it would maybe work for the kernel too.


Copyright © 2015, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds