KS2012: Distributions and upstream
The "distributions and upstream" session of day 1 of the 2012 Kernel
Summit focused on a question enunciated by Ted Ts'o: "From an
upstream perspective, how can we better help distros?
" Responding to
that question were two distributor representatives: Ben Hutchings for
Debian and Dave Jones for Fedora.
Ben Hutchings asked that, when considering merging a new feature,
kernel developers not accept the argument that "this feature
is expensive, but that's okay because we'll make it an option
". He
pointed out that this argument is based on a logical fallacy, since in nearly
every case distributions will enable the option, because some
users will need it. As an example, Ben mentioned memory cgroups (memcg), which, in their
initial release, were rather expensive for performance.
A second point that Ben made was that there are still features that distributions are adding that are not being merged upstream. As an example from last year, he mentioned Android. As a current example, he noted the union mounts feature, which is still not upstream. Inasmuch as keeping features such as these outside of the mainline kernel creates more work for distributions, he would like to see such features more actively merged.
Dave Jones made three points. The first of these was that a lot of
Kconfig help texts are "really awful
". As a
consequence, distribution maintainers have to read the code in order to
work out if a feature should be enabled.
Dave's second point is that it would be useful to have an explicit list
of regressions at around the -rc3 or -rc4 point in the release
cycle. His problem is that regressions often become visible only much
later. Finally, Dave noted that Fedora sees a lot of reports from
lockdep that no other distributions seem to
see. The basic problem underlying both of these points is of course lack of
early testing, and at this point Ted Ts'o mused: "can we make it
easier for users to run the kernel-of-the-day [in particular, -rc1 and rc2
kernels] and allow them to easily fall back to a stable kernel if it
doesn't work out?
" There was however no conclusive response in the ensuing discussion.
Returning to the general subject of Kconfig, Matthew Garrett
echoed and elaborated on one of points made by Ben Hutchings, noting that
Kconfig is important for kernel developers (so that they can strip
down a kernel for fast builds). However, because distributors will nearly
always enable configuration options (as described above), kernel developers
need to ask themselves, "If you don't expect an option to be enabled
[by distributors], then why is the option even present?
". In
passing, Andrea Arcangeli noted one of his pet irritations—one with
which most people who have ever built a kernel will be familiar. When
running make oldconfig, it is very easy to overstep as one types
Enter to accept the default "no" for most options; one suddenly
realizes that the answer to an earlier question should have been "yes". At
that point of course, there is no way to go back, and one must instead
restart from the beginning. (Your editor observes that improving this small
problem could be a nice way for a budding kernel hacker to get their hands
dirty.)
Posted Sep 6, 2012 17:22 UTC (Thu)
by smurf (subscriber, #17840)
[Link] (16 responses)
Because not all kernels are being built by distributors of general-purpose Linux distributions.
Duh.
Posted Sep 6, 2012 17:27 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link] (15 responses)
Posted Sep 6, 2012 17:53 UTC (Thu)
by smurf (subscriber, #17840)
[Link] (14 responses)
Posted Sep 6, 2012 18:19 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link] (13 responses)
Posted Sep 6, 2012 18:46 UTC (Thu)
by hummassa (subscriber, #307)
[Link] (12 responses)
Why "being surprised" == "not fine"?
Posted Sep 6, 2012 18:47 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link]
Posted Sep 6, 2012 21:17 UTC (Thu)
by bronson (subscriber, #4806)
[Link] (10 responses)
Posted Sep 6, 2012 21:55 UTC (Thu)
by dlang (guest, #313)
[Link] (9 responses)
so you have the choice of either having the feature available as an option, or not having it available at all.
Distros are not supposed to just enable every possible option, they are supposed to be selecting a reasonable set of options. Sometimes this means that they provide multiple kernels for you to choose from. Sometimes this means that to get some specific option that's got a particularly high cost for those that don't care about it, you have to compile your own kernel (and the distros that strongly discourage this really should be slapped, and yes, I am thinking of RHEL)
You also sometimes have options that the distro decides are probably important enough to enough people that they are going to make them be the default, and if you don't want to pay the cost of that feature, you will need to compile a kernel without it (again, if the distro doesn't offer an option)
In recent years Distros have in many cases been going too far in just enabling everything "because someone may want it" without considering, or testing the impact of the options.
upstream could be better in figuring out and communicating what the expected impact of options are, but that doesn't help if the Distros don't pay attention.
Posted Sep 6, 2012 21:56 UTC (Thu)
by dlang (guest, #313)
[Link] (5 responses)
if enabling A has a cost B saying "I want the benefits of A and I'm shocked that I'm having to pay the penalty B" == not good as well.
Posted Sep 6, 2012 22:09 UTC (Thu)
by rahulsundaram (subscriber, #21946)
[Link] (4 responses)
You are free to run your custom kernel in RHEL. If there are issues, you might be asked to reproduce it against the distribution provided kernel. Anything else would be a undue burden on support.
Posted Sep 6, 2012 22:33 UTC (Thu)
by dlang (guest, #313)
[Link] (3 responses)
I understand that this is easier for Red Hat to provide support for, but this is a pretty strict straightjacket that defeats many of the benefits of FOSS software.
Posted Sep 7, 2012 3:02 UTC (Fri)
by rahulsundaram (subscriber, #21946)
[Link] (2 responses)
Posted Sep 7, 2012 11:24 UTC (Fri)
by nix (subscriber, #2304)
[Link]
Posted Sep 7, 2012 18:35 UTC (Fri)
by dlang (guest, #313)
[Link]
That's why I specifically mentioned them, even though Suse and Oracle have the same policies (I don't know about Canonical)
Posted Sep 7, 2012 15:01 UTC (Fri)
by xav (guest, #18536)
[Link] (2 responses)
Just wait a bit for your new secureboot server. You'll have no other option left than running the distro-provided kernel.
Posted Sep 10, 2012 13:44 UTC (Mon)
by vonbrand (subscriber, #4458)
[Link] (1 responses)
You misrepresent what folks are trying to do. The work in this area is to enable users a frictionless installation of their choosen distribution, and allow hachkish types to set up secure boot to handle self-compiled kernels without disabling it completely. I do agree that this whole mess is a misguided "security" feature at best, and a thinly veiled attempt from software-vendors/"content"-distributors to stab at controlling our machines at will at worst. In any case, it is being forced down out throats, we have to see how to make the best of it.
Posted Sep 10, 2012 13:55 UTC (Mon)
by xav (guest, #18536)
[Link]
Posted Sep 7, 2012 21:58 UTC (Fri)
by dlang (guest, #313)
[Link]
Frequently the reason something has not been merged upstream is that it isn't going to work well, isn't maintainable yet, or otherwise has some significant drawback to the code.
Also, the question that Matt Asks
> "If you don't expect an option to be enabled [by distributors], then why is the option even present?"
what distributions are you considering?
There are a lot of config options that make sense for OpenWRT that would be horrible for Fefora. The converse is also true.
Posted Sep 18, 2012 17:49 UTC (Tue)
by henrich (guest, #56730)
[Link]
KS2012: Distributions and upstream
> then why is the option even present?"
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
KS2012: Distributions and upstream
unionfs