Slashdot Mirror


Missing Kernel Patches

BlueEar writes: "There is an interesting, short story posted on the Gentoo Linux site. It talks about kernel patches created by Linux distributors that while publically available never get submitted. It even gives an example of one 'no brainer' patch that has been sitting over a year, without being incorporated into the 2.4.x distribution. The article ends with an appeal to Linux community to keep those patches flowing to Marcelo."

27 of 159 comments (clear)

  1. They Don't Get There By Themselves by Anonymous Coward · · Score: 5, Insightful

    What most people don't realize that someone who puts together these releases like Linus or Marcelo is by no means omniscient. The kernel is a huge piece of work, and no one person can know what's happening in every corner of the thing. Most of Marcelo's time goes to merging patches, so he surely cannot go around the net looking for what ever fixes some distributor might have used or even checking out how come some fix that was circulating around before was never submitted to him.

    What's nice is that nowadays there seem to be a couple of "patch harvesters" on the lkml who create their own releases (Alan Cox is now one of these people!) and persistently keep submitting forgotten patches.

  2. The quality? by Anonymous Coward · · Score: 4, Insightful

    Many of the distributor's fixes are ad hoc kludges that are designed to quickly making the thing *work*, ignoring elegance and maintainability... even when they do fix things, in the long run we don't want to take all of them into the kernel.

    1. Re:The quality? by supine · · Score: 4, Informative

      Many of the distributor's fixes are ad hoc kludges that are designed to quickly making the thing *work*, ignoring elegance and maintainability...

      I don't understand why a distro would bother shipping a kernel (or app for that matter) with a patch that was "ad hoc". It wouldn't exactly endear their customers to provide repeat business.

      I think you will find that most distros test their patched kernels thoroughly before releasing them to the world. This would include not only checking that the patch fixes the problem, but that it compiles on all supported architectures and does not jeopradise future modifications to the same bit of code or adjacent or related pieces of code.

      Why they don't submit all the patches to the kernel maintainer I don't know? Maybe the patch was submitted and was passed over or missed and then not resubmitted.

      marty

      --
      "I can't buy want I want because it's free. Can't be what they want because I'm me." -Corduroy, Pearl Jam
    2. Re:The quality? by bero-rh · · Score: 3, Informative

      I don't understand why a distro would bother shipping a kernel (or app for that matter) with a patch that was "ad hoc"

      Easy: Because a kludgy workaround is preferrable over a bug, and we don't always have the time to fix things the right way.

      I think you will find that most distros test their patched kernels thoroughly before releasing them to the world. This would include not only checking that the patch fixes the problem, but that it compiles on all supported architectures and does not jeopradise future modifications to the same bit of code or adjacent or related pieces of code.

      This is true - but it doesn't include checking for stuff that's just a workaround for a bug with a relatively bad code quality.

      Why they don't submit all the patches to the kernel maintainer I don't know?

      Because the guy who wrote the article either didn't check the facts or lied.
      At least as far as Red Hat is concerned, patches do get submitted.

      --
      This message is provided under the terms outlined at http://www.bero.org/terms.html
  3. These patches can hardly be critical by Yakman · · Score: 4, Interesting

    Based on that sample patch they gave it seems that an unpatched system allocates one more page of memory than it actually uses. Sure it's not nice in terms of resource use but it's hardly going to affect the operation of the kernel.

    Obviously with the number of people (especially "power" users) who run the "generic" kernel any critical flaws are going to get uncovered and patched. I think these kind of issues, that directly affect the stability of the kernel are more important than "clean up" type patches this article describes.

    Obviously they're nice to have, but it's hardly a priority when there are bigger fish to fry.

    1. Re:These patches can hardly be critical by Alan+Cox · · Score: 5, Informative

      Precisely. This patch was in fact submitted and the consensus was thats its tricky to prove correct, its 1 page of memory and it was better to wait for 2.5 before doing that work.

    2. Re:These patches can hardly be critical by jeremyp · · Score: 3, Interesting

      consensus was thats its tricky to prove correct, its 1 page of memory

      So nobody can actually figure out whether this eidx thing points to the last page or just beyond the last page. I find that quite worrying...

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  4. Everyone should start helping? by Anonymous Coward · · Score: 4, Funny

    Yeah, that's what Marcelo needs, every clueless dweeb bombing them with endless copies of "this rmap vm is so 1337 why dont j00 include it in 2.4.19!"

    1. Re:Everyone should start helping? by scorcherer · · Score: 3, Funny

      Andrea to Linus: "This VM is so 0x539 why don't j00 #include it in 2.4.10!"

      --

      --
      The Cap is nigh. Time to get a fresh new account.

  5. Patches might narrow focus by Krellan · · Score: 5, Insightful

    An example of why a particular patch might not be accepted, even though it seems like a "no-brainer", is because it would be for too specific a purpose. It might optimize the kernel for one particular application, at the expense of others. One of the best things about Linux is that it is general-purpose: suitable for everything from palmtops and embedded systems to servers and enterprise applications.

    A patch to aggressively cache the disk in memory, for instance, might be good for servers but not for embedded systems. So, I could understand how a patch would be rejected in this case.

    As an example, a company I once worked for made many minor changes to the Linux kernel. Since Linux is GPL, I made a webpage publishing these changes, and unlike the company, my webpage is still in existence!

    Splash Open Source Page

    These changes would be too narrow in focus to apply to the Linux kernel for everybody, so we never submitted them.

  6. Not just linux by cperciva · · Score: 3, Insightful

    The same thing sometimes happens to the BSDs, where a bug will be fixed (usually in Open) and nobody gets around to integrating the same fix into the others.

    It seems to me that much of this could be automated... for each patch which gets added into the xBSD source tree, compare the contexts to the yBSD and zBSD source trees and alert a human if it looks like there's a match.

    But for this to be effective, I think that patches would have to have labels attached, since it's really only bug fixes for which this is necessary.

  7. Sounds like something from a big business to me... by Fortyseven · · Score: 5, Interesting

    Out of all the people involved with this on the planet, not one person could be assigned the task of doing this sort of sweeping up? Lots of busy folk out there, certainly, but those people were found to do the major stuff in the first place... And please, save the "well why don't you do it, smarty man?" responses for someone that sort of backwards logic will work on, thanks, I'm just making an observation, not an accusation.

  8. Re:Sounds like something from a big business to me by realnowhereman · · Score: 4, Interesting

    "Out of all the people who moan that these sort of issues should be fixed by someone else isn't there someone who could be ordered to do this in their own free time instead of having fun to fix this for small minded whingers like me?"

    Yes, fortunately the kerneljanitors project does this. And I think they do it out for altruistic reasons rather than because someone assigned them to.

    This is not backwards logic. I am not suggesting you do it. I am suggesting you stop whining about there being noone else to do it when you can't be bothered either.

    --
    Carpe Daemon
  9. Issue by mrfiddlehead · · Score: 5, Informative
    Since the patch doesn't show how eidx has been calculated it's not immediately obvious that this patch should even be applied. That is, if the bug was subsequently "fixed" by incrementing eidx, when it was calculated, then this patch would make matters worse. So you'd have to go get the 2.4.3 source and verify that the calculation of eidx has not itself changed.

    Careful.

    --
    :wq
  10. Re: plz don't make fun of my head brace plz, k? by Paelon · · Score: 4, Interesting

    Besides, you operate under the assumption that I haven't contributed anything to the kernel, which would be wrong.

    I think the assumption he operates on is that you can't be bothered to go through and submit patches, as you were complaining that someone should to do it.

    It's not an issue that people aren't working on the kernel enough, it's that there are too many mad scientists, and not enough henchmen.

  11. one possible explanation... by bob@dB.org · · Score: 4, Informative

    could be that whoever produced the patch (Mandrake in this case) got tired of having to submit it over and over, only to have it ignored bye (for example) Linus. i'm not complaining here, but i think at least part of the solution to this "problem" relates to how the patches are handled by the maintainers.

    --
    Acts@core.mailboks.com Acrux@core.mailboks.com Adam@core.mailboks.com Adar@core.mailboks.com Ada@core.mailboks.com
  12. Automate it with Visual Sourcesafe by Otis_INF · · Score: 3, Interesting

    No, this is not a troll. Hear me out. This is an example how this work can be done using a good tool. I use Visual Sourcesafe here as an example, but any tool with the same functionality described below will do:

    Visual Sourcesafe has the ability to merge back changes automatically in branch B from branch A when they have the same parent.

    Say, you have the kernel v2.4.10. You branch off another project from it, call it v2.5.0. When you fix a bug in 2.4.11, you can merge it back into 2.5.0 without a hassle, it can be automated or you can do a visible merge when there are conflicts. The other way around also does work. So you can do this even further: branch of a prerelease 2.4.11-pre branch and a 2.4.11 branche from the 2.4.10 branch. Create fixes in 2.4.11-pre, merge them back into 2.4.11 after testing and when you're done, release 2.4.11 and get rid of 2.4.11-pre.

    This is inside a versioncontrol system, you don't have to hassle around with a lot of files you have to merge by hand which will increase the risk for errors.

    Of course, Visual Sourcesafe is just 'a' tool, you could use another which has the same functionality and is perhaps Open Source (I don't know of any but I'm sure others will). Doing this job by hand TODAY is erm... not understanding why we have computers in the first place. That's right: to serve mankind.

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:Automate it with Visual Sourcesafe by ethereal · · Score: 3, Informative

      I'll agree with the versioning/branching comment, although I'd say that ClearCASE, cvs, pretty much anything would be more stable than VSS. Also, VSS doesn't make it nearly as easy to branch as ClearCASE - in VSS you seem to have to branch the whole project, in ClearCASE you can branch individual files and directories, so you never have to merge more than you need to.

      Unfortunately, the Linux kernel configuration management paradigm seems to be more of developers maintaining separate trees, and then handing off patches between trees instead of patches that move between branches. I think this is because for a branching scheme like ClearCASE, you need a centralized authoritative repository to say who has branched from where, and when. Linux has no central branch directory like that, and the patch format commonly used doesn't encode this sort of information. So you can't do automatic conflict resolution (or at least you can't do as much as you'd like) without a branch directory under central control.

      Branches make sense to me - I use them every day. But Linux, at the moment, isn't set up to use them very well. And in moving to bitkeeper they're going even farther down the path of handling trees rather than branches.

      --

      Your right to not believe: Americans United for Separation of Church and

  13. Vendor patches by Captain+Zion · · Score: 4, Informative

    Marcelo is certainly well aware of the existance of many patches that never get included in the main kernel tree, as he maintains Conectiva's kernel package which contains a large amount of vendor patches. He certainly has his reasons for not including the patches to the official kernel -- it certainly would make his life much easier if he reduced the number of vendor patches in Conectiva's tree applying some of these to the main tree. Marcelo is being very conservative regarding the 2.4 tree, and I believe that's the way it should be, considering it's a "stable" kernel.

  14. Re:I am wondering... by bero-rh · · Score: 5, Informative

    I am wondering if the distributors themselves don't have too much interest in offering patches upstream

    This plain isn't true, and whoever wrote the article on gentoo.org just shows he doesn't have the slightest hint of a clue.

    There are some good reasons not to blindly apply distributor patches into the main kernel (for example, we have quite a few workarounds for bugs, but the right way to fix them in the official kernel is to fix them, not to add workarounds), and there are some other things preventing other patches from getting in (e.g. Linus not having the time to handle them immediately).

    Other stuff is controversial (such as Red Hat Rawhide kernels putting in the Rik VM rather than the AA VM currently in upstream).

    The patches are sent upstream, but at least Red Hat doesn't believe in forcing upstream maintainers to accept all patches we send.

    --
    This message is provided under the terms outlined at http://www.bero.org/terms.html
  15. It would make things *easier* for them by gotan · · Score: 3, Insightful

    ... because once their patches are included they wouldn't have to maintain them themselves. So i don't see, how it could be a waste of time to send obvious patches in, or alert the kernel-maintainer of problems with recent patches that came up in their testing.
    --

    --
    "By the way if anyone here is in advertising or marketing... kill yourself." -- Bill Hicks
  16. Re:I am wondering... by Strog · · Score: 5, Funny
    I'll spend my time being productive, thank you very much.

    Then why are you posting on /.?

  17. Re:For anyone running at 1024x768 or lower.. by scorcherer · · Score: 3, Funny

    I was running at 80x34 first. I had to maximize the terminal to 129x44 to be able to read it. I doubt your terminal is even close to 1024x768 characters...

    --

    --
    The Cap is nigh. Time to get a fresh new account.

  18. This hardly applies to just the kernel! by hardaker · · Score: 3, Insightful

    As a maintainer of a package which is distributed via many linux and *BSD distributions, I'd like to complain on the behalf of software authors everywhere. The linux distributions are nutoriously bad about applying patches to their rpms (say) but never submitting them back to the authors of the package themselves. The BSD distributions are just as bad. The infamous FreeBSD port tree also frequently houses patches that never make their way back to developers.

    I'm not sure how this could ever be considered a good thing, as the project authors must spend time searching through distribution source releases looking for patches, which takes time. The distributions must continually apply their patch to a changing source tree (and I'm sure it'll eventually break and need reworking), so they loose time as well. This is one case where communication really could be a very positive thing.

    sigh... It's about time I went to search for patches again...

    --
    The next site to slashdot will be ready soon, but subscribers can beat the rush and start slashdotting it early!
  19. Agreed on the article by clump · · Score: 4, Interesting
    I would have to agree with Bero in that the article is a tad mislead. If you listen to the mainstream Linux media as of late you would likely believe that there is a huge wealth of wonderful patches that are being dropped by Linus. This just simply isn't how kernel development works.

    From Kerneltrap's wonderful interview with Andrew Morton:
    there has been quite a lot of talk lately about kernel development processes, patches getting dropped, etc. I think it's all terribly overblown. The people who aren't being heard (and who aren't even bothering to comment) are the _users_ of that system - the developers. We're all just rolling our eyes and waiting for it to stop. The current system could be more efficient, but it mostly works OK; it is very unlikely to change and anything like a kernel fork is hugely improbable, even if Linus gets bored of it all and decides to do something else.


    The above article should be required reading for those following/concerned about kernel development.
  20. Thats absurd by clump · · Score: 4, Insightful
    I am wondering if the distributors themselves don't have too much interest in offering patches upstream, not only with the kernel. Commercial distros have a chance to become "pseudo-proprietary" this way.

    I think this is a rather childish behavior and use Debian [debian.org] instead.

    It is extremely difficult to be proprietary when you are bound by the GPL. If your referring to Red Hat's using Rick's VM, there would be no stopping you from nabbing a .srpm and making a diff.

    I also use Debian and must tell you that they make changes to the kernel. That is good, however. It just isn't practicle for a distro to try and update to the latest kernel. Plus if you like me, the first thing you do on any distro is nab a tarball from ftp.kernel.org.
  21. This would never happen in *BSD... by pschmied · · Score: 3, Informative

    ...And no, I'm not trolling.

    People talk about the exchange of ideas between the BSDs and Linux, and I think that a core group like FreeBSD's would be a great idea for the Linux world.

    It seems like we are running into more and more scaling issues with the people behind Linux than with Linux itself. This is no fault of theirs. Linux is too big a project for a "the buck stops here" kind of person like Linus.

    Obviously, Linux is Linus's brainchild, and he can do whatever he likes with it (yes, I know the GPL allows forking, but think of how a kernel fork would be recieved on /.).

    I don't believe that Linux can attain the kind of consistency (and that is not the goal anyway) of FreeBSD or NetBSD, I think they might be able to fix some of the kernel patching and architecting problems if an elected core team could work on this.

    -Peter