Slashdot Mirror


Linus Does Not Scale

EmilEifrem writes: "Seems like everybody's getting more and more frustrated by Linus' (in-) ability to handle patches. Rob Landley just wrote an "RFC on Penguin Patch Management" wherein he proposes a "Penguin Patch Lieutenant" system that he believes would scale better. The full discussion can be found on the Linux kernel mailing list. Linus seems to dislike it, as usual, source code maintenance tools/organization are for wimps!, but a lot of others find it a good idea. Anyway, it's a very good read."

27 of 554 comments (clear)

  1. Linus' Reply by reaper20 · · Score: 5, Informative

    Before everyone flames Linus for his dislike of CVS and other management tools ....
    From Kernel Trap:

    His general point is summarized with this statement, "One 'patch penguin' scales no better than I do. In fact, I will claim that most of them scale a whole lot worse". He goes on to explain this statement quite thoroughly, adding: " In short: don't try to come up with a 'patch penguin'. Instead try to help existing maintainers, or maybe help grow new ones. THAT is the way to scalability".

    Say what you want about Linus' attitude - Having a kernel lieutenant probably wouldn't help either. Either way, there's only so much one person can do.

    1. Re:Linus' Reply by morzel · · Score: 5, Insightful
      Instead try to help existing maintainers, or maybe help grow new ones
      The problem is that Linus' current "system" is demotivating the current maintainers because of his non-responsiveness. A lot of the efforts and productivity of the maintainers is lost b/c of the non-accepting of patches, and the work they have in keeping the patches current with every kernel version until Linus finally decides to integrate the patch.
      It doesn't matter how many maintainers there are: Linus can only work through a specific amount of code/patches per day/week/month. More maintainers result in more patches being dropped, and subsequently in more efforts to keep their patches up-to-date with the kernel.
      This is really hurting development, and is frustrating a lot of people who are involved in the kernel with the risk of losing them.
      Anyhow: Linus does what he likes, but it's exactly that kind of attitude that will hurt Linux in the longer run - both in technological as reputational (?) way.

      --
      Okay... I'll do the stupid things first, then you shy people follow.
      [Zappa]
  2. The beginning of a major shift in Linux kernel dev by Anonymous Coward · · Score: 5, Insightful

    It all worked before because (1) Linus could wrap his head around the entire mass of kernel code, and (2) the kernel itself was much simpler, and (3) there were far fewer people submitting code to Linux.

    This is all out the window now. The kernel is very large, and continues to grow, and Linus can no longer track the project just using his head.

    In short, Linux is growing up. What it grows up to be I guess we'll see in a year. Either it starts using professional tools to manage this increasingly professional project, or the bloat (yes, the kernel is bloating) leads to unmanageable chaos, and the bloom goes off the Linux rose.

  3. Re:I know Linus doesn't like it... by gmack · · Score: 5, Insightful

    It simply won't help the problem... source management isn't the problem. Making sure useless crap doesn't make it into the tree is the problem. CVS doesn't have any sort of means to make sure that what goes in is quality code.

  4. Re:I know Linus doesn't like it... by c=sixty4 · · Score: 5, Informative
    I know Linus doesn't like it, but is there really anything wrong with using CVS?
    This is why Linus has said he doesn't like CVS:

    Note that things like CVS do not help the fundamental problem at all. They allow automatic acceptance of patches, and positively _encourage_ people to "dump" their patches on other people, and not act as real maintainers.

    We've seen this several times in Linux - David (Miller), for example, used to maintain his CVS tree, and he ended up being rather frustrated about having to then maintain it all and clean up the bad parts because I didn't want to apply them (and he didn't really want me to) and he couldn't make people clean up themselves because "once it was in, it was in".

    I know that source control advocates say that using source control makes it easy to revert bad stuff, but that's simply not TRUE. It's not easy to revert bad stuff. The only way to handle bad stuff is to make people responsible for their own sh*t, and have them maintain it themselves.

    --
    "The good die first." "Most of us are morally ambiguous, which explains our random dying patterns." --- MST3K
  5. No, no, no... by macinslak · · Score: 5, Insightful

    Slashdot angers me. Long story short, it's a bad solution for a problem already being fixed properly.

    For those who don't care to read the discussion, Linus essentially feels that this is a bad idea because no general patch manager is going to scale better than he does or get burnt out less quickly than Alan Cox.

    He then goes on to say that the solution to the problem of the scalability of one maintainer is to partition the different subsystems of the kernel to such an extent that there would be precious few patches that actually require a knowledge of the entire kernel source.

    1. Re:No, no, no... by Shotgun · · Score: 5, Interesting

      He then goes on to say that the solution to the problem of the scalability of one maintainer is to partition the different subsystems of the kernel to such an extent that there would be precious few patches that actually require a knowledge of the entire kernel source.

      Which is the proper way to design a complex system anyway. Partition the system and then present well defined interfaces, versus making a complex, monolithic system more complex and monolithic.

      Linus is correct. CVS just gives you an extremely efficient filing cabinet. Without a someone to file things properly, the filing cabinet is no better than a shoebox. Running a CVS tree makes you the equivalent of a secretary. People will just come by, throw things on your desk, and yell "File this" as they run home for the day. Linux chooses to be an engineer. He refuses to just accept what it thrown at him. He wants explanations and reasoning as to WHY a patch should be included. Not using CVS slows the development system down so that it is comprehensible by a single person. The kernel isn't just a collection of source files collected in a cabinet. It's a fine masterpiece of artwork on Linus' desk.

      --
      Aah, change is good. -- Rafiki
      Yeah, but it ain't easy. -- Simba
  6. Pre-emption by Error27 · · Score: 5, Informative
    The reason that Robert Loves's pre-empt patch has not gone in is because that it can cause subtle bugs.

    For example, there was a bug in the ne2000 driver that Alan Cox points out here. According to Mr. Cox, "this is one tiny example of maybe thousands of other similar flaws lurking. There is no obvious automated way to find them either."

  7. Growing pains by Multiple+Sanchez · · Score: 5, Interesting

    Lots of corporate/management types have the negative impression of Linux as an OS that has no professional control over kernel development. It's seen as a souped-up hotrod modified in the garage that runs like a dream but could fall apart at any minute. Hell, even a lot of BSD people see it this way. If (*if*) a goal of the Linux community is to gain wider acceptance or be taken more seriously, one way to do that might be to give more than one person final say over the kernel.

    Yeah, it's Linus' baby -- but once IBM is advertising your OS during the superbowl, it might be ok to expand the development structure a little bit.

  8. Linus is, as is often the case, right by gaj · · Score: 5, Interesting
    Linus's vision of the kernel dev process is really the right answer. Why can't more people see that? By using a non-hierarchial network of maintainers, the kernel effort can scale indefinately.

    The basic premise he makes is one that many developers seem to miss. To quote Linus:

    Basic premise: development is done by humans
    From that, he goes on to point out that people tend to have a small group of people they work well with and trust; perhaps 5 - 10 people. So, in essence, if Linus appoints 5 - 10 maintainers of major subsystems (which he has), and each of them has 5 - 10 people the trust to maintain specific aspects of their subsystem, then there is no problem.

    We're not there yet. But that is the only direction I can see that will work, long term. It just takes time for the appropriate people to move into their spots; trust takes time to build, and the structure has taken time to modularize enough to allow this to work.

    And, though I would prefer to see it in use just to make the maintainers' jobs easier, CVS will do nothing to solve the problem. It is a tool, not a process. We need a process. Actually we have a process, it just isn't fully implemented yet.

    No, strike that. We have two processes. The first, used by the bulk of the kernel hackers, is not fully implemented yet. The second, used by a minority of the kernel hackers and a large part of the pretenders, is simple: whine alot, and, when that doesn't work, whine some more.

    Linus says it much better, and in his own unique ... er ...

    Idium, sir?

    Yes, in his own, unique idium.

    1. Re:Linus is, as is often the case, right by gaj · · Score: 5, Insightful
      Well, yes there is a problem. The problem, however, is not that Linus is dropping patches from his designated maintainers on the floor. That is the symptoom.

      The problem is that Linus is getting lots of other patches as well. Not enough filtering is going on.

      Allowing maintainers to check in their own patches will not happen as long as Linus is interested in Linux. The buck stops with him. Rightly or wrongly he prefers not to have to back out patches (roll back checkins, if you prefer). At least that is where we stand, now. I would love it if Linus would eventually trust a small group of people enough to allow a CVS system to be usefull.

  9. Re:first post! by lupetto · · Score: 5, Funny


    CVS... does not check for quality or if it breaks anything.

    If you've been following Linux kernel development the last year or so, you could say the same about Linus.

  10. Is Linux bigger than Linus? by ArthurDent · · Score: 5, Insightful

    There is absolutely nothing wrong with using CVS. Your question raises a larger issue, however. As with any large project, it is difficult if not impossible for one person to have knowledge of the entire scope. Linux has become bigger than Linus.

    From its very beginning, Linus has kept a tight rein on Linux, and everybody in general let it go if for no other reason than he's a smart guy and by God, he wrote the thing! Don't get me wrong. That was a Good Thing (tm). Now, however, we are finding that it is becoming less and less practical for Linus to handle all of the patches.

    Linux is becoming more and more like a cathedral and less and less like the bazaar. Whether he likes it or not, for Linux to continue to thrive (perhaps even to continue as we know it) Linus is going to have to decentralize the way patches are brought into Linux. I don't claim to have all the answers, but there must be a way to make a CVS-a-like system work and keep Linus' ability to make the final say if he wants to. Another alternative is for Linus to put more trust in his maintainers and let them accept patches for their respective subsystems.

    The problem here is the star network topology that we have with respect to patches. If Linus is not willing to release his hold on the center of that star, then Linux could have a MAJOR problem!

    Ben

  11. Re:Linux needs a "centralized clearinghouse" by duffbeer703 · · Score: 5, Insightful

    Speed things up by forming a committee?? HAHAHAHA!

    Have you ever worked at a real job before?

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
  12. CVS isn't a magic bullet. by Zenin · · Score: 5, Insightful

    Disclaimer: I'm a FreeBSD fan and generally consider Linux et al to be one of the most choatic and sloppy large-scale development projects ever created. Just being a Linux user requires dealing with an absolutely insane about of pointless choas; I fear to imagine what trying to be a maintainer must be like...

    That said...

    "Just use CVS" isn't anything remotely close to an answer. SCM, release control, whatever you'd like to call it is 99% about the PROCESS, not the tools. CVS is a tool. It's a great tool and one I highly recommend, but at best it's 1% of a solution. It seems quite obvious that Linus's current process is incredibly flawed. It would seem a drastically different process needs to be devised. Only once you have figured out what your process is going to be can you even start shopping for tools (CVS, whatever) to help you create it (and even then...the tools are only 1%, if you even have tools. The PROCESS is what's important).

    Of course "CVS forks" of Linux failed. Anyone with even the slightest understanding of CM could have easily predicted such an end. You've got a handful of people, not even the top people, trying to constantly fold in the efforts of thousands of contributers all using a completely different process (ad-hoc patches emailed to devnull@linus.org). What did you expect?

    You have two choices. Devise a workable process which Linus will agree to (with or without CVS, whatever). Or, you can devise a workable process that everyone else is happy with...and simply throw Linus off his paper throne. The first option will likely never, ever happen...at least if every single word Linus has ever uttered on the subject isn't true. The second option might actually welcome the dawn of a non-choatic Linux, one which wouldn't be so easily cast aside as a cheap toy made by a small man with a big ego.

    Linux/Linus Flame (-1k Karma)

    --
    My /. uid is better then your /. uid
  13. Why not just send patches to the right people? by Bazzargh · · Score: 5, Insightful

    If you read Linus' reply to this you'll see he argues that the 'patch penguin' merely replaces him with someone else, and does not actually help distribute the work. He also comments that it may be better to submit patches to subsystem maintainers.

    This being the case, why not just automate that? Subsystem maintainers are effectively maintainers for a known group of source files. Its not hard to figure out (automatically) from a patch which files are affected - and from that, which maintainer(s) the patch is relevant to. Given how Linus describes his 'trust network' it looks like he wants a hierarchy of subsystem managers who can merge patches for him to accept upstream. I can see that scaling a lot better than the proposal in the article.

    For this to work of course, you'd have to hope the patches had reasonably local scope - if most patches affect >1 subsystem this isnt worth doing at all.

    - Baz

  14. Linux Vulnerability by ackthpt · · Score: 5, Insightful
    As my old boss noted, you don't keep all your eggs in one basket. We were three programmers, all specializing in IT aspects at a community college. He forbade us to all go out to lunch in the same car, in the event there was an accident and his IT shop would be severly crippled.

    I'm sure Linus is healthy and a good driver, but as misfortune befell a former colleague at another job (her car was parked at a light on the off-ramp which was below the highway, a driver from the other direction suffered a cardiac arrest, crossed the median and opposite lanes and went airborne, landing on her car as she waited for the light to change. Gone, just like that,) unfortunate things happen. It would be very tragic for his wife and child to lose a father. It would be a disaster for Linux, as the unifying person would be gone and in the aftermath someone would have to take control. I imagine Linus has already considered this, but his tight grip on the kernel is a bit worrying. He should delegate more.

    --

    A feeling of having made the same mistake before: Deja Foobar
  15. CVS can work, look at FreeBSD by Chris_Keene · · Score: 5, Interesting

    A lot of people have said CVS could not work, agreeing with Linus. Yet FreeBSD uses a CVS tree with multiple committers, and has had no serious problems that I am aware of. Infact, I would say they have had less problems than linux has had in the last few years.

    cjk
    Toothpaste likes you

    --
    You will forget this sig before you next see it
  16. It's called "span of control" by DG · · Score: 5, Insightful

    This is a basic principle of leadership/management that the Army calls "span of control".

    It has been proven (through all kinds of research) that any one person has difficulty controlling much more than 10 individuals, with 8 being a practical maximum.

    This is why military units are organized in strict tree structures - at no point does any one leader exceed his span of control.

    So an 8-man infantry section is controlled by a Section Commander (which can be further broken down to 2 4-man fire teams, but rarely). 4 sections report to a Platoon Commander. 4 Platoons report to a Company Commander. 4 Companies report to a Battalion Commander, and so on through Regiments, Brigades, Divsions, and so forth.

    In this manner, the several thousand men in a large formation like a Division can be commanded by one man.

    Further aiding the General in charge of the Division is that each sub-unit is granted a certain amount of autonomy within certain boundries. As you go up the chain, orders become more general (2 Battalion is to attack objective Oscar) and as you go down the chain, orders become more specific (Bob, you're carrying the machine gun)

    While Linux development does not require this level of structure (and indeed, would probably suffer if this many authority-resistant cats were forced into such a regimented structure) the basic principle of "span of control" is still applicable.

    The obvious correct solution is to modularize the kernel into subsections with clearly defined areas of responsibility, with a "mini-Linus" (who Linus trusts) granted control over each module.

    Not suprisingly, this is what Linus has suggested.

    The trick (and the catch) is two-fold. Firstly, you have to find people who are both responsible enough to be able to act as a "mini-Linus" without dropping the ball (which means Linus has to trust them too) and secondly, the kernel has to be modular enough so that changes in Module A do not step on or otherwise negatively impact code in Module B.

    That's a hard row to hoe.

    What I find a little distressing is that there appears to be a whiff of revolution in the air; of people talking about overthrowing Linus (and Alan Cox seems to be among them) This will not solve the problem. It is not that **Linus** doesn't scale, but rather that any single maintainer doesn't scale. Any revolution will just be "same shit, different name"

    CVS doesn't solve the problem either, as anyone with commit privilages can jsut dump anything they want in there, and it becomes canon. Linus' function as a shit filter is very very important. every patch *must* be audited by someone with very high standards before it goes in.

    I hope the crew rallies around Linus - as usual, he's right.

    DG

    --
    Want to learn about race cars? Read my Book
  17. Re:first post! by Anonymous Coward · · Score: 5, Insightful
    How can you say this, when the BSDs are doing precisely what you claim to be impossible?

    Of course you need to test patches and have others review them before you commit, but having things in CVS makes it very much easier to manage code.

  18. The Linux Fund? by ansible · · Score: 5, Funny

    How about we set up a fund so that Linus can work on Linux full-time, instead of needing a day job? That's not a permanent fix, but it would help for a while.

    1. Re:The Linux Fund? by MisterBlister · · Score: 5, Interesting
      What makes you think he wants to?

      I'm fairly positive that if he did want to he could find a Linux-related company to back him on this, despite the fact that many are in the crapper (RedHat would take him, IBM would probably pay him a full salary just to work on Linux, etc.)

      Maybe he has interests outside of Linux? Ever even consider that?

  19. Jordan Hubberd was in the same position by Baki · · Score: 5, Informative

    As "president" of FreeBSD. Then he had the courage to step down and become a "normal" member of the "core-group", a collective in which every member has the main responsability for a part of the FreeBSD code. Apart from the core group there are other committers but the core group decides who these are and can revoke commit-rights in cases of abuse.

    This is a nice distributed system that continues to work very well when the load gets higher; also noone is indispensible, noone has to be afraid what would happen to FreeBSD if a certain person would somehow drop out.

    Of course Linus has every right in the world to remain the status quo, even if it damages Linux. After all Linux is his baby and he can do with it what he likes. Whether it is a good idea to rely on an OS with this kind of a leadership structure is another matter however. But noone can force Linus to change, since he doesn't force anyone to use Linux (take it or leave it).

  20. Thank God Linus doesn't scale by kramer · · Score: 5, Funny

    Imagine the terror of a 50 foot tall Finnish programmer wandering the streets.

    Now let's just hope RMS doesn't scale either.

  21. Neither did Moses by rjamestaylor · · Score: 5, Interesting
    That Linus doesn't scale reminds me of a passage from Exodus where Moses' father-in-law came and saw his success and also observed Moses judging between the people of Israel from morning to evening. Here's the passage:
    It came about the next day that Moses sat to judge the people, and the people stood about Moses from the morning until the evening.
    Now when Moses' father-in-law saw all that he was doing for the people, he said, ""What is this thing that you are doing for the people? Why do you alone sit as judge and all the people stand about you from morning until evening?''
    Moses said to his father-in-law, "Because the people come to me to inquire of God." "When they have a dispute, it comes to me, and I judge between a man and his neighbor and make known the statutes of God and His laws.''
    Moses' father-in-law said to him, ""The thing that you are doing is not good."
    "You will surely wear out, both yourself and these people who are with you, for the task is too heavy for you; you cannot do it alone."
    "Now listen to me: I will give you counsel, and God be with you. You be the people's representative before God, and you bring the disputes to God, then teach them the statutes and the laws, and make known to them the way in which they are to walk and the work they are to do."
    "Furthermore, you shall select out of all the people able men who fear God, men of truth, those who hate dishonest gain; and you shall place these over them as leaders of thousands, of hundreds, of fifties and of tens."
    "Let them judge the people at all times; and let it be that every major dispute they will bring to you, but every minor dispute they themselves will judge. So it will be easier for you, and they will bear the burden with you."
    "If you do this thing and God so commands you, then you will be able to endure, and all these people also will go to their place in peace.''24 So Moses listened to his father-in-law and did all that he had said.
    Moses chose able men out of all Israel and made them heads over the people, leaders of thousands, of hundreds, of fifties and of tens.
    They judged the people at all times; the difficult dispute they would bring to Moses, but every minor dispute they themselves would judge.

    Here's the Linux version:

    It came about the next day that Linus sat to judge the patches, and the patches stood about Linus from the morning until the evening.
    Now when Rob Landley saw all that he was doing for the patches, he said, ""What is this thing that you are doing for the patches? Why do you alone sit as judge and all the patches stand about you from morning until evening?''
    Linus said toRob Landley, "Because the people send patches to me to fix the Kernel." "When they have a patch, it comes to me, and I judge between the patches and make known the statutes of the Kernel and its laws.''
    Rob Landley said to him, ""The thing that you are doing is not good."
    "You will surely wear out, both yourself and these people who are with you, for the task is too heavy for you; you cannot do it alone."
    "Now listen to me: I will give you counsel, and lucky evolution be with you. You be the people's representative before the kernel, and you bring the patches to the Kernel, then teach them the statutes and the laws, and make known to them the way in which they are to code and the work they are to do."
    "Furthermore, you shall select out of all the people able men who fear the Kernel, men of truth, those who hate dishonest gain (proprietary software); and you shall place these over them as leaders of thousands, of hundreds, of fifties and of tens."
    "Let them judge the patches at all times; and let it be that every major patch they will bring to you, but every minor patch they themselves will judge. So it will be easier for you, and they will bear the burden with you."
    "If you do this thing and lucky evolution so commands you, then you will be able to endure, and all these people also will go to their place in peace.'' So Linus listened to Rob Landley and did all that he had said.
    Linus chose able men out of all LKML and made them heads over the people, leaders of thousands, of hundreds, of fifties and of tens.
    They judged the patches at all times; the difficult patch they would bring to Linus, but every minor patch they themselves would judge.
    --
    -- @rjamestaylor on Ello
  22. /. remarks == loads of BS moded to +2 by Qbertino · · Score: 5, Informative

    Did ANYBODY on /. actually read the ML Thread on this problem the kernelpeople have?

    Rob Landley and Linux Torwalds aren't bashing their heads in on one another nor is ANYBODY of the Kernel Team about to 'dethrone' Linus. Whatever that may be.

    In fact Landley suggest a "Patch Penguin' to actually EMPOWER Linus in his actuall job as an arcitect of Linux.
    Linus in turn says that officially shifting patchin jobs to somebody else (the said Patch Penguin) won't save the problem of, for instance, people being to lazy to clean up their code dependencies.
    Linus wants to see a sort of 'web of maintainers' where everyone knows and works with a overseeable amount of others (just like he does) rather than a big patcheritis boiling around a main single/pair/group of developers.

    It may, IMHO of a absolute non-kernel savy guy, kinda boil down to the monolitic/modular kernel discussion that comes up every know and then.
    Then again, on the other hand I gather the impression that Rob Langley and Linus Torwals aren't that far apart in seeing the issue that needs to be addresses rather than seeing different ways of aproaching a solution to it.

    Anyhow, /.ers should read the actual thread before they post every instant and absurd mindfart that comes to them. Be it about jelousy amongst kernelhackers or Linus supposedly bossing around or whatever other sorts of utter bullshit.

    --
    We suffer more in our imagination than in reality. - Seneca
  23. Authority comes from trust, not competence by Anthony+Boyd · · Score: 5, Insightful

    ...although I concede that trust comes from competence. But what does this have to do with anything?

    If you're going to overhaul (or in this case, overthrow) an established system, you need to do it with much fear & trembling. Look, I see this all the time as a manager. A new project is given to a manager. That manager hires someone competent and works with that person to build something from nothing. If the project takes off, you can end up hiring a lot of people to help support that project. It is possible for all those new hires to be more competent than the original, lead developer. But that original, lead developer now has management's trust. That lead developer, who got the damn thing off the ground in the first place, has an opinion that -- like it or not -- counts for more than the other developers. You can call that unfair, but certain people are just better rounded than others -- they have social skills, they can explain things well, they understand the market pressures, or whatever. Not to mention that it's their baby and you don't fuck around with stuff like that. As a manager, if I stomp all over the lead developer's project, that lead developer may not want to lead the next project! Sure, I can call on one of the other people brought in to help, but those other people may not be leaders.

    I'm not saying that such an effort is doomed. But I am suggesting that, if you want to propose that Linus relinquish some authority, you damn well better have a value proposition for him. Shouting "this needs to be a democracy" is what you want, not what Linus wants. He's looking at that as a management nightmare, a removal of a power structure that is in place because, whatever it's faults, it was the structure that worked. If it doesn't work well anymore, you either have to convince Linus, or you have to convince everyone else to stop trusting the person in authority. That is a massive undertaking.