LWN: Comments on "White paper: Vendor Kernels, Bugs and Stability" https://lwn.net/Articles/973996/ This is a special feed containing comments posted to the individual LWN article titled "White paper: Vendor Kernels, Bugs and Stability". en-us Sat, 01 Nov 2025 09:45:08 +0000 Sat, 01 Nov 2025 09:45:08 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974917/ https://lwn.net/Articles/974917/ donald.buczek <div class="FormattedComment"> <span class="QuotedText">&gt; I don't need a static declarative list of all deprecations that might or might not exist in my kernel.</span><br> <span class="QuotedText">&gt; </span><br> <span class="QuotedText">&gt; I need a list of those deprecated calls/options/whatever that the current system is actually using (or rather has been using since booting).</span><br> <span class="QuotedText">&gt; </span><br> <span class="QuotedText">&gt; A data structure that gets added to a list which you can check via /proc/deprecated would be quite sufficient for this.</span><br> <span class="QuotedText">&gt;</span><br> <span class="QuotedText">&gt; No JSON fanciness required; a textual table identifying the subsystem or module, source file, first and last use timestamps, and its identifier in linux/Documentation/deprecations.yml [yes I know that file doesn't exist yet] would be quite sufficient.</span><br> <p> This would be perfect! We would see, what we need to address in our fleet (we are not using a distribution). But distributions would have something to build on, too. They might create a feedback path of this information from the systems of their users to the distribution. The basis for everything is that the information "you are using a mechanism, which will go away" is made available in a structured way.<br> <p> It is important that the information cannot only be found by digging through masses of unstructured text in mailing lists, documentation, NEWS files, dmesg or other sources and then having to analyze in each individual case whether it is is relevant to you at all.<br> <p> <p> <p> <p> <p> <p> </div> Fri, 24 May 2024 13:45:31 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974882/ https://lwn.net/Articles/974882/ tlamp <div class="FormattedComment"> <span class="QuotedText">&gt; It would change nothing.</span><br> <span class="QuotedText">&gt; Every distribution and everyone building their kernel will just enable this option, because stuff will break without enabling it.</span><br> <span class="QuotedText">&gt; Just like everybody enabled the - how was it called? - EXPERIMENTAL option.</span><br> <span class="QuotedText">&gt; Such options are useless.</span><br> <p> I don't think so, mostly because my spitballed proposal was not targeted at solving the "distros get never hurt by deprecation", as IMO that cannot be solved, besides not doing any deprecation at all anymore which hardly is a good solution. Rather, I wanted to target the "how things get communicated and noticed" part and having ab extra compile option with something like "deprecated-6.8-removal-6.12" in the name could actually be quite good for that. The build configs are often tracked and even diffed, and as simple single file can be easily grep'ed against _DEPRECATION_ and then diffed for ones that would trigger soon or new ones, probably even by a CI like systemd uses.<br> <p> I.e., the status quo is having warnings for deprecation, which can be brittle and are not easy to digest/parse, having that info in an easier to digest manner would help a lot as tools/distros that depend on such options can easily find out when a used one will vanish soon(ish), then they also have no excuse about being unprepared.<br> <p> <span class="QuotedText">&gt; And that is exactly when people will first start to notice.</span><br> <p> If their distro or tooling did not do their work then yes, but it wouldn't be the fault of the kernel having a messy deprecation process. IME most bigger distros or big projects like systemd want to avoid that, so if they'd have the definitive information required to do so in just somewhat digestible way, then I really think that most would actually act on that.<br> </div> Fri, 24 May 2024 08:15:24 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974881/ https://lwn.net/Articles/974881/ tlamp <div class="FormattedComment"> <span class="QuotedText">&gt; I don't need a static declarative list of all deprecations that might or might not exist in my kernel.</span><br> <p> As said, I'd assemble on build so those options that are not relevant for a kernel build config would not be in there (or if still wanted could be tracked differently, i.e., with an extra flag or separate list)<br> <p> <span class="QuotedText">&gt; I need a list of those deprecated calls/options/whatever that the current system is actually using (or rather has been using since booting).</span><br> <p> With a declarative list this is trivial to create, as a tool can just scan all modules, mount, ... options and compare if anything explicitly set is in the static list. So if you want this then a static list is IMO really the best way to achieve it, one first needs the definitive list of information before being actually able to do something with it, keeping it dumb on the kernel side and include as much as possible allows (user space or build) tooling to actually do the smart checks.<br> <p> <span class="QuotedText">&gt; A data structure that gets added to a list which you can check via /proc/deprecated would be quite sufficient for this.</span><br> <p> Not sure how this minus bikeshedding is any different what I proposed, but I like that we agree in general.<br> <p> <span class="QuotedText">&gt; No JSON fanciness required; a textual table identifying the subsystem or module, source file, first and last use timestamps, and its identifier in linux/Documentation/deprecations.yml [yes I know that file doesn't exist yet] would be quite sufficient.</span><br> <p> I'd named JSON simply as an option, explicitly also stated that a simple list could do. But, I named JSON as 1. generating it is trivial (compared to parsing, which isn't hard either, but not trivial anymore) 2. Allows more flexible extension for whatever data or use case gets relevant in the future without having to do a /proc/deprecation2 3. in my projects I try to avoid another not-invented-here format with it subtleties to be added, but sure if it's a simple CSV list that gets generated by the common infra (i.e., not under the control of each kernel dev with their own opinions of the day) then fine by me (not that my acknowledgment would matter anything :)<br> </div> Fri, 24 May 2024 08:01:21 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974871/ https://lwn.net/Articles/974871/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; Do you realize, that most kernel options are disabled by default?</span><br> <p> And how many of those options have "deprecated" in their name? Surely that's a massive red flag.<br> <p> <span class="QuotedText">&gt; It means that developers don't have a clue what people (users!) actually want and need.</span><br> <p> And how many developers are employed by (therefore are) users? I believe Alphabet employs loads. Meta employs loads. Most of the kernel developers I have contact with are employed by large end users. It's a little difficult to be oblivious of your own needs. (Some people manage, I'm sure ...)<br> <p> How difficult is it - to set a "not enabled" flag that cannot be accessed without some sort of warning that this flag will enable deprecated functionality Surely it's not beyond the wit of your typical kernel developer? That's ALL that's required.<br> <p> Cheers,<br> Wol<br> </div> Thu, 23 May 2024 22:41:07 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974870/ https://lwn.net/Articles/974870/ pizza <div class="FormattedComment"> <span class="QuotedText">&gt; So first of all "dmesg" doesn't work anymore on Fedora (you need perms now).</span><br> <p> Fedora just flipped the default, starting with their 6.8 kernels IIRC.<br> <p> Reverting it is just a matter of:<br> <p> sysctl kernel.dmesg_restrict=0<br> <p> <span class="QuotedText">&gt; It's a wall, a deluge of text. Don't expect me to read all that.</span><br> <p> Fortunately, it's rare when anything beyond the final dozen or so lines matters. (eg the messages that show up when you plug something in, or if something goes wrong...)<br> </div> Thu, 23 May 2024 21:48:36 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974868/ https://lwn.net/Articles/974868/ mezcalero <div class="FormattedComment"> So first of all "dmesg" doesn't work anymore on Fedora (you need perms now).<br> <p> But even beyond that: there's *so* *much* *stuff* in dmesg right now. It's a wall, a deluge of text. Don't expect me to read all that. I only look there when I am looking for something, and then I usually do "journalctl -ke", and it never showed up there.<br> </div> Thu, 23 May 2024 21:14:36 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974867/ https://lwn.net/Articles/974867/ mb <div class="FormattedComment"> <span class="QuotedText">&gt;Developers are enabling something that is disabled by default? They're accepting the associated risks.</span><br> <p> Do you realize, that most kernel options are disabled by default?<br> <p> <span class="QuotedText">&gt;The fact that people have to actively enable something that developers clearly don't want activated means</span><br> <p> It means that developers don't have a clue what people (users!) actually want and need.<br> <p> Closing your eyes won't make the demand go away, unless you are less than three years old.<br> </div> Thu, 23 May 2024 21:01:15 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974865/ https://lwn.net/Articles/974865/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; It would change nothing.</span><br> <p> Except it changes everything<br> <p> <span class="QuotedText">&gt; Every distribution and everyone building their kernel will just enable this option, because stuff will break without enabling it.</span><br> <p> You just said it! <br> <p> The distributions are enabling something that is disabled by default? They're accepting responsibility for keeping it working.<br> <p> Developers are enabling something that is disabled by default? They're accepting the associated risks.<br> <p> People are enabling something that is marked "deprecated"? They're being placed on notice that it's being left to bit-rot.<br> <p> The fact that people have to actively enable something that developers clearly don't want activated means that anybody using it will have three choices - migrate their code away, take over maintenance, or do an ostrich and bury their heads in the sand. Users will still be able to be complain "I didn't know", but their upstream won't have that excuse.<br> <p> Cheers,<br> Wol<br> </div> Thu, 23 May 2024 20:56:19 +0000 Compatibility https://lwn.net/Articles/974844/ https://lwn.net/Articles/974844/ anton <blockquote> A sweet spot always has to be found, where developers document the intended use and users scratch a bit around what is officially supported, keeping the intended use in mind so as to limit the surprise in case of changes. </blockquote> That's what C compiler advocates use to defend miscompilation: "works as documented". And while this bad principle is used for declaring gcc bug reports invalid, the actual practice of gcc development seems to be better: They use a lot of tests to avoid breaking "relevant" code (including for cases outside the documented behaviour), and the irrelevant code rides in the slipstream of relevant code. <p>Fortunately, the kernel aspires to a better principle, the often-cited "we don't break user space". And given that we have no way to automatically check whether a program conforms to the documentation, that principle is much more practical (and the practice of gcc is also in that direction, but only for "relevant" code). <p>Concerning accidental features, a careful design of interfaces avoids those. E.g., one can catch unintended combinations of inputs and report them as errors. Or define and implement useful behaviour in such a case. Exposing some arbitrary accident of the implementation in such cases leads to the difficulties you point out. Given that Linux' interface to user space is also a security boundary, carefully defining interfaces and avoiding exposing implementation artifacts is a good idea anyway. Thu, 23 May 2024 16:49:57 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974841/ https://lwn.net/Articles/974841/ anton <blockquote> This is very much about "do not break userspace" in the general form. It's the perfect example of why that mantra needs to be put to bed, once and for all, as it's completely disconnected from reality. </blockquote> Is it? When the breakage of existing code is reported as a bug, do the kernel developers declare the bug report as invalid, or do they fix the bug? If it's the latter, they live up to the principle. Sure, one might wish that such bugs would never happen, but apparently they feel that that going for that would be too constricting for kernel development. <p>Whether that means that vendor kernels are needed, or that one can use upstream kernels if one is selective about them is up to the vendors and their customers to decide. Thu, 23 May 2024 15:48:35 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974839/ https://lwn.net/Articles/974839/ mb <div class="FormattedComment"> We're talking about kernel messages here, right? Not the systemd start-stop messages.<br> <p> I'm not saying that messages are not useful for debugging. And for that exact reason it's always possible to enable a verbose boot.<br> But in the vast majority of cases nothing is "stuck" (didn't happen in a decade for me) and there would just be a blast of messages during a couple of seconds boot time that nobody reads.<br> Therefore, the default should be no kernel messages and also no systemd messages.<br> <p> A kernel deprecation message would certainly go by unnoticed during the burst of messages.<br> </div> Thu, 23 May 2024 15:26:35 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974838/ https://lwn.net/Articles/974838/ eru <div class="FormattedComment"> Isn't that way on my system. There are enough operations that take humanly noticeable amount of time, and as noted, if something is stuck, the scrolling pauses there. The OS is Ubuntu 22.04 which uses systemd; the laptop is 10 years old, but but yet dust-bin-ready, as it was rather upscale when obtained.<br> </div> Thu, 23 May 2024 15:19:16 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974837/ https://lwn.net/Articles/974837/ zdzichu <div class="FormattedComment"> But the users would be helpless even if they saw the deprecation messages!<br> <p> Developers, on the other hand, are the target of such messages. I cannot imagine developing a low-level component – like systemd – and not running `dmesg` from time to time. If you use kernel features more than anyone else, you should pay more attention than anyone else.<br> </div> Thu, 23 May 2024 15:14:48 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974697/ https://lwn.net/Articles/974697/ smurf <div class="FormattedComment"> I don't need a static declarative list of all deprecations that might or might not exist in my kernel.<br> <p> I need a list of those deprecated calls/options/whatever that the current system is actually using (or rather has been using since booting).<br> <p> A data structure that gets added to a list which you can check via /proc/deprecated would be quite sufficient for this.<br> <p> No JSON fanciness required; a textual table identifying the subsystem or module, source file, first and last use timestamps, and its identifier in linux/Documentation/deprecations.yml [yes I know that file doesn't exist yet] would be quite sufficient.<br> <p> <p> </div> Thu, 23 May 2024 14:57:04 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974833/ https://lwn.net/Articles/974833/ mb <div class="FormattedComment"> <span class="QuotedText">&gt;It is a mystery to me why this is done </span><br> <p> Because nobody can read over 9000 messages in 0.5 seconds.<br> <p> <span class="QuotedText">&gt;The stream of messages is actually a nice progress indicator</span><br> <p> No, it isn't. Today's boot process is so fast (unless you're stuck with a legacy init system), that console output is pretty much useless and just slows things down, at best.<br> <p> </div> Thu, 23 May 2024 14:49:46 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974831/ https://lwn.net/Articles/974831/ mb <div class="FormattedComment"> <span class="QuotedText">&gt;but move all deprecated stuff into a (or several) modules behind an option "deprecated-6.8" or whatever.</span><br> <p> It would change nothing.<br> Every distribution and everyone building their kernel will just enable this option, because stuff will break without enabling it.<br> Just like everybody enabled the - how was it called? - EXPERIMENTAL option.<br> Such options are useless.<br> <p> <span class="QuotedText">&gt;let's delete it</span><br> <p> And that is exactly when people will first start to notice.<br> And there is not much anybody can do about that *except* to not break/deprecate stuff.<br> </div> Thu, 23 May 2024 14:45:29 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974809/ https://lwn.net/Articles/974809/ eru <blockquote><i>The kernel has been [trying to?] warn everyone about it since 5.11. </i></blockquote> <p> These days just about every distribution "helpfully" hides boot messages behind a splash screen, so few users will ever see such warnings. Might as well not be there. <p> It is a mystery to me why this is done (and after I found out how, I disabled it). The stream of messages is actually a nice progress indicator, and if they get stuck at some point, one gets some idea about what might be wrong. Thu, 23 May 2024 14:01:08 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974715/ https://lwn.net/Articles/974715/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; We had such a deprecation list under Documentation, but I think it got removed a couple of years ago.</span><br> It was not very useful and suffered from major bitrot.<br> <p> Far better to do it in the kernel itself. Probably not easy, but move all deprecated stuff into a (or several) modules behind an option "deprecated-6.8" or whatever. Bleeding edge sets all these to "no", and either someone steps up and supports it (removing the deprecated option), or it bitrots until someone says "oh, this broke ages ago, let's delete it".<br> <p> And then, if there's stuff you really want to get rid off but people need it, every year or so it gets upgraded to "deprecated latest kernel", so hopefully people stop using it and it finally drops out of sight ...<br> <p> Cheers,<br> Wol<br> </div> Thu, 23 May 2024 13:20:35 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974704/ https://lwn.net/Articles/974704/ mb <div class="FormattedComment"> <span class="QuotedText">&gt; A major improvement here could consist of adding a common infrastructure in the kernel to track deprecation.</span><br> <p> We had such a deprecation list under Documentation, but I think it got removed a couple of years ago.<br> It was not very useful and suffered from major bitrot.<br> </div> Thu, 23 May 2024 12:35:19 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974694/ https://lwn.net/Articles/974694/ tlamp <div class="FormattedComment"> IMO what actually needs fixing is how deprecated options, maybe even drivers, are communicated and tracked.<br> <p> A major improvement here could consist of adding a common infrastructure in the kernel to track deprecation.<br> It should allow the kernel build system to generating a declarative list (or something more structured like JSON) that includes info like "driver/module", "option" name, "kernel release it got deprecated", and "kernel release where removal is planned".<br> <p> This data should be assembled on kernel build, possibly even made available on runtime in one of the virtual FS, would allow distros and projects with a lot of kernel interaction like systemd to actually track those and notice those for sure, as scanning for arbitrary warnings that can change wording every point release is just an ugly mess with lots of false-positives/negatives waiting to happen.<br> <p> If it was available on runtime then checks could be added to the pre- / post-installation scripts/hooks of the kernel distro packages so that users can get a much more noticeable warning printed out on upgrade if their system is affected by such an option removal.<br> </div> Thu, 23 May 2024 10:12:05 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974679/ https://lwn.net/Articles/974679/ taladar <div class="FormattedComment"> What you describe is the traditional understanding. However I doubt that is actually true.<br> <p> Every backport is also a new, untested version, one with changes by someone with significantly lower understanding of either the original code base or the fix than the person working on that part of the code on the latest version. Distro kernels see significantly less testing than the latest version does because of its limited audience which is largely comprised of people who only want it once it has been tested.<br> </div> Thu, 23 May 2024 07:50:54 +0000 More breaking of userspace https://lwn.net/Articles/974678/ https://lwn.net/Articles/974678/ taladar <div class="FormattedComment"> I would suggest the opposite. The only implementation I would never want to see is one treating a hint as a guarantee. If you guarantee the behavior specify it as a guarantee, don't make it implicit like that.<br> </div> Thu, 23 May 2024 07:46:51 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974534/ https://lwn.net/Articles/974534/ bluca <div class="FormattedComment"> but where's the fun in that :-P<br> </div> Wed, 22 May 2024 11:52:15 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974525/ https://lwn.net/Articles/974525/ smurf <div class="FormattedComment"> Seems that it's somewhat helpful to file such bugs on the channel(s) actually designated for them, instead of, like, bitching on LWN about them. ;-)<br> </div> Wed, 22 May 2024 05:16:32 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974521/ https://lwn.net/Articles/974521/ bluca <div class="FormattedComment"> and now a revert has been sent and merged in btrfs-next: <a href="https://lore.kernel.org/all/44c367eab0f3fbac9567f40da7b274f2125346f3.1716285322.git.wqu@suse.com/">https://lore.kernel.org/all/44c367eab0f3fbac9567f40da7b27...</a><br> So looks like it was a regression after all ;-) All's well what ends well<br> </div> Wed, 22 May 2024 00:03:49 +0000 Btrfs regression https://lwn.net/Articles/974472/ https://lwn.net/Articles/974472/ corbet Just for anybody who hasn't long since tuned out this thread...today the Btrfs regression was <a href="https://lwn.net/ml/linux-btrfs/ZkxZT0J-z0GYvfy8@gardel-login/">reported to the Btrfs developers</a>. Less than one hour later, a Btrfs developer <a href="https://lwn.net/ml/linux-btrfs/3c492c05-bab3-46be-861b-f658d6c6a095@gmx.com/">acknowledged the problem</a> and agreed to add the <tt>norecovery</tt> option back. Tue, 21 May 2024 13:29:54 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974417/ https://lwn.net/Articles/974417/ jamesh <p>You are essentially arguing that it isn't enough to distribute the source code corresponding to the binaries, but that the source code to all previous versions is also required. That seems like it'd be a problem for far more than just RHEL kernel packages. Off the top of my head:</p> <ul> <li>Many pieces of software have changed license at some point in their history. A distro might be happy with the current license but not the old one. Do they need to distribute all the versions released under the bad license now?</li> <li>A number of packages in Debian modify the upstream source tarballs to remove files with licenses that don't meet their guidelines. If they were required to distribute a git tree with history linking back to upstream, that'd include the problem files.</li> <li>Some projects have been accused of plagiarism and removed the offending code, but it remains in the version control history.</li> </ul> <p>There are open source licenses that require that you split out patches from the upstream release (e.g. the QPL), but the GPL is not one of them.</p> Tue, 21 May 2024 09:18:10 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974385/ https://lwn.net/Articles/974385/ NYKevin <div class="FormattedComment"> It was... like 10-15 years ago when I cut my teeth on this stuff. But nowadays, we have software for everything, so I haven't actually played with low-level mounting etc. in a long time.<br> <p> Which is also, sort of, the point I'm trying to make here. It is no longer accurate to divide userspace into "applications" and "stuff the sysadmin manually fiddles with." Sysadmins are not manually fiddling with mount options etc. these days. That's all managed by some other piece of software that isn't "the application," but can still break and cause problems all the same. E.g. k8s, Puppet, Docker, etc.<br> </div> Mon, 20 May 2024 17:35:49 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974379/ https://lwn.net/Articles/974379/ smoogen <div class="FormattedComment"> I didn't actually think it covered my concerns but I also did not clearly state them in my first email.<br> <p> The reason to compare against 4.19 first would be to see if X was backported to that also or if it was avoided because of reasons (the problem came in after 4.19, the problem only affects hardware not supported by 4.19, etc). And it would not have mattered if the kernel being compared was the 8.8 kernel, the 9.0 kernel or similar. <br> <p> I understand that doesn't cover the Red Hat Enterprise Linux kernel very well since it is not 4.18 straight. It is a chimera with different functionality from later kernels backported which does bring in other changes. I also realize my main confusion was I am not sure what the purpose of the whitepaper was for. I thought it would be on selling CIQ's knowledge of how a competitors kernel internals were and to show the limitations in a clear fashion to better sell their services. [AKA you can trust us because we can show you clearly and concisely how this was done.] That may not have been the purpose and so my suggestions would not work.<br> </div> Mon, 20 May 2024 16:33:38 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974377/ https://lwn.net/Articles/974377/ jra <div class="FormattedComment"> <span class="QuotedText">&gt; In looking at the white paper, I was wondering why the comparison was done between Red Hat's which was 'based' off of 4.18 and the 5.x series. </span><br> <p> I think Ronnie answered this question above in this comment.<br> <p> <a href="https://lwn.net/Articles/974151/">https://lwn.net/Articles/974151/</a><br> </div> Mon, 20 May 2024 16:08:12 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974369/ https://lwn.net/Articles/974369/ smoogen <div class="FormattedComment"> [Note: I am currently employed by Red Hat. I have worked for Red Hat for 19 years as such my comments should be seen as biased. ]<br> <p> In looking at the white paper, I was wondering why the comparison was done between Red Hat's which was 'based' off of 4.18 and the 5.x series. I would have thought a better analysis would have been to see what had been backported to the long term 4.19 kernel to see if there were apples to apples between the two. Then do a comparison between 4.18 and the 5.x series as various things were moved back from that kernel in places. <br> <p> The items I have run into with customers either in Red Hat or outside is that generally they want with a kernel series is:<br> 1. Stability. The majority of them will put up with various security problems over any stability issues. This stability goes beyond 'crashes', but also interface and other changes. Stability covers ability to use the same configs for related software and workloads versus special casing because core applications are different.<br> 2. New hardware support. Generally they want to be able to run their operating system over a general set of hardware purchased over a 6 year period. [They would love to have that be hardware over a 14 year period.. but there are limits]<br> 3. Security fixes. [Make sure that they can pass various audits to maintain usage of certain systems].<br> ...<br> 4. New software support on the same OS.<br> <p> What the customer will say is usually a different order but what they complain about after they have a contract is usually in the first order.<br> <p> Personally I would love the order to be different but all PCI and other audit requirements has done is move 3 up from probably 4 or 5 (where 3 was New Software Support). [This is also a spectrum. There are also probably a billion Linux systems out there so that even if 80% used that order, the number having completely different priorities would be hundreds of millions of systems.]<br> </div> Mon, 20 May 2024 15:15:59 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974370/ https://lwn.net/Articles/974370/ sandeen <div class="FormattedComment"> I commented in another thread, but maybe it's more relevant here:<br> <p> I think it would be fascinating run your same analysis on the 4.19 LTS kernel, which is supported until the end of this year, IIRC.<br> </div> Mon, 20 May 2024 15:00:52 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974366/ https://lwn.net/Articles/974366/ sandeen <div class="FormattedComment"> You know what would be fascinating, and a useful control case to test thewhitepaper's theory?<br> Run your same analysis on the 4.19 LTS kernel.<br> </div> Mon, 20 May 2024 14:51:11 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974364/ https://lwn.net/Articles/974364/ paulj <div class="FormattedComment"> You can say what you want, but the GPL deliberately does not define what "preferred form" means. And the "For an executable work, ..." part doesn't change that, because it it self refers to "source code" - it clarifies that the executable work includes the "source code" for X, Y and Z. And "source code" means "the preferred form for modifications".<br> <p> You may indeed argue that the preferred form is a text file.<br> <p> However, if you are a company that has deliberately stripped away context that you yourself use for hosting and modifying said source code as part of your commercial operation, and you have made that deliberate act in order to frustrate others who also wish to modify said source code, then I - if it mattered to me and I were a copyright holder - could well argue to a court that the form you have provided is clearly not the form you prefer to use yourself for making modifications, and that you have therefore violated the licence I gave you. <br> <p> E.g., I - as your upstream - could well be trying to follow along with what you're doing to my code, so that I can cherry-pick the good bits to integrate back into the code. Your deliberate obfuscation, done to keep for yourself the preferred form of modifications and hence frustrate others from picking out what you changed, I would argue as being clearly against the wording of the licence.<br> <p> The form you prefer to use internally, versus the form you chose to release, would be prima facie evidence of your failure to honour the licence.<br> <p> Who would win, who knows. But I don't think your position would be 100% safe.<br> </div> Mon, 20 May 2024 14:36:22 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974358/ https://lwn.net/Articles/974358/ smurf <div class="FormattedComment"> The "preferred form of modification" was, and is, a text file. Or a directory tree with a large heap of 'em.<br> <p> True, the preferred form of keeping track of your modifications, distributing them, etc.etc.etc., once was patches and tar files; now it's git and pulling commits. The problem is that the GPL doesn't talk about any of that. It merely requires "a" medium commonly used for software exchange. Not "the medium everybody else who's contributing to this particular piece of source code is using".<br> <p> So for better or worse, you can appeal to common sense and interoperability and the equivalent of sportsmanship and whatnot and I'll be the first person to be argue right along with you. But the GPL? sorry you pour cold water on your fire but you can't use it to demand git trees from anybody.<br> <p> Disclaimer: IMHO and IANAL and all that.<br> </div> Mon, 20 May 2024 13:54:09 +0000 Stop here please https://lwn.net/Articles/974340/ https://lwn.net/Articles/974340/ corbet This clearly is not going anywhere useful, can we all let it go at this point, please? Mon, 20 May 2024 12:57:35 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974311/ https://lwn.net/Articles/974311/ paulj <div class="FormattedComment"> What do you mean exactly?<br> <p> If you mean "For an executable work, complete source code means ..." - that's defining the complete source code, but not the preferred form for modifications. <br> <p> You can have the complete source code, but not have it in the preferred form for modification.<br> </div> Mon, 20 May 2024 12:46:29 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974309/ https://lwn.net/Articles/974309/ pbonzini <div class="FormattedComment"> Even in the one case that is precisely defined in the license itself?<br> </div> Mon, 20 May 2024 12:38:25 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974308/ https://lwn.net/Articles/974308/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; "Here's a what-if to consider. What if the distros and the corps spent exactly the same amount of money on a mix of QA engineers and developers for much more recent stable kernels?"</span><br> <p> "You can't QA quality into a product".<br> <p> "10 minutes spent on design knocks 1hr off development".<br> <p> "Every problem that slips through one phase takes 10 times longer to correct in the next".<br> <p> As I moaned above, design, Design! DESIGN. If that money was spent on *documentation* and *design* it would probably find far more bugs, far more quickly, and what's more important get them fixed (probably by other people :-)<br> <p> The current setup encourages a kernel held together by baling wire, duck tape, and sealing wax ...<br> <p> Cheers,<br> Wol<br> </div> Mon, 20 May 2024 12:20:56 +0000 White paper: Vendor Kernels, Bugs and Stability https://lwn.net/Articles/974307/ https://lwn.net/Articles/974307/ georgyo <div class="FormattedComment"> I'm confused, what broke here? I run 6.8+ with btrfs/systems on multiple machines and never had any trouble booting.<br> <p> I see a lot of people participating in this discussion, but not a lot of people actually affected. <br> </div> Mon, 20 May 2024 12:03:43 +0000