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.)
