Slashdot Mirror


Con Kolivas Returns, With a Desktop-Oriented Linux Scheduler

myvirtualid writes "Con Kolivas has done what he swore never to do: returned to the Linux kernel and written a new — and, according to him — waaay better scheduler for the desktop environment. In fact, BFS appears to outperform existing schedulers right up until one hits a 16-CPU machine, at which point he guesses performance would degrade somewhat. According to Kolivas, BFS 'was designed to be forward looking only, make the most of lower spec machines, and not scale to massive hardware. i.e. [sic] it is a desktop orientated scheduler, with extremely low latencies for excellent interactivity by design rather than 'calculated,' with rigid fairness, nice priority distribution and extreme scalability within normal load levels.'"

333 comments

  1. BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 5, Interesting

    Why would the summary omit this precious bit of information?

    1. Re:BFS is the Brain Fuck Scheduler. by Fizzl · · Score: 4, Informative

      from the dare-not-speak-its-name dept.

    2. Re:BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 0

      You looked at goatse and you liked it.

    3. Re:BFS is the Brain Fuck Scheduler. by Swizec · · Score: 4, Funny

      Great, now when someone mentions BFS I won't be able to just assume Breadth First Search.

      Another one for the Geeks-are-great-at-naming-things wall.

    4. Re:BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 1, Funny

      You looked at goatse and you liked it.

      You know, I think I can see his brain right up at the end.

    5. Re:BFS is the Brain Fuck Scheduler. by Jurily · · Score: 2, Interesting

      Another one for the Geeks-are-great-at-naming-things wall.

      All the TLAs are taken anyway. As always, you'll have to look at the context.

    6. Re:BFS is the Brain Fuck Scheduler. by Zibri · · Score: 1

      ... named after the language it was implemented in.

    7. Re:BFS is the Brain Fuck Scheduler. by invalid_user · · Score: 1

      Great, now when someone mentions BFS I won't be able to just assume Breadth First Search.

      I pity the google engineers.

    8. Re:BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 0

      Because, his job is also brain fucking.
      He is an anaesthetist after all :-)

    9. Re:BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 0

      Yeah, my first thought was "Breadth First Scheduler"?

    10. Re:BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 0

      And all this time you've misunderstood: they were using best first search.

    11. Re:BFS is the Brain Fuck Scheduler. by Anonymous Coward · · Score: 0

      Or the Be File System. Or the Boot File System. Or the Basic Feasible Solution. Or...

    12. Re:BFS is the Brain Fuck Scheduler. by Fred_A · · Score: 1

      All the TLAs are taken anyway. As always, you'll have to look at the context.

      That's what the ETLAs are for.

      --

      May contain traces of nut.
      Made from the freshest electrons.
    13. Re:BFS is the Brain Fuck Scheduler. by MadKeithV · · Score: 1

      I'd prefer to go to the STLAs first, but I'm fixing a thirteen chicken alarm right now. I think one of the cute and furry fuzzballs got into the henhouse.

  2. great news by amn108 · · Score: 5, Interesting

    Great news :-) Now, will the kernel people with Mr. Torvalds at their head, restart the whole debate on pluggable schedulers. Since his scheduler, as he says, degrades beyond 16 CPUs, better options already exists for servers where I am guessing CFS is used. So, he may be back, but the road ahead is still as steep?

    1. Re:great news by s4m7 · · Score: 5, Insightful

      I think that's only going to be a good thing, because IMO the arguments against pluggable schedulers are weak. "we need the few people working on this to just make the core better for ALL CASES" is about the most valid i've heard, but linux is too broadly applied to force it to meet all cases. realtime, embedded, servers, desktop: i just don't think one scheduler can be shoehorned to maximize performance for all those. You wind up with a crippled scheduler that really only achieves maximum performance in at most one of those four domains. And the question of there being enough developer minds working on it? you can bet that more commercial enterprise will start throwing money at it when they can customize it for their domain.

      It's like the dynamic syscall argument in a way. without dynamic syscalls, the argument goes, all the 'fringe functionality' people have to think harder and have to integrate their stuff into the current syscalls/drivers/subsystems. (apologies ingo) however, without dynamic syscalls, all the "middle of the road" functionality people like hardware manufacturers, are unwilling to release drivers that they essentially have to ask customers to compile as a supported option.

      Both, IMO are cases of cutting off your leg to spite your foot.

      --
      This comment is fully compliant with RFC 527.
    2. Re:great news by amn108 · · Score: 1

      I agree. Linux is too large (in the classic meaning of the english word) to run on a single scheduler. But then again, what is a _single_ scheduler? If it means a facility that can plug and unplug schedulers at runtime, let us say switch between CFS (or something even more server oriented) and BFS as it detects server-desktop border patterns, then I guess both Mr. Torvalds and Mr. Kolivas are happy. And users are happy too. The rigid unexplained reason that "we only need ONE scheduler, period." however puts an effective stop to the strategy. If the scheduler cannot be plugged in, i. e. statically linked, mainline kernel will stay with CFS, which it will, because the maintainers will not merge pluggable scheduler facility. Well, we will have to wait and see how this turns out. As a GNU/Linux desktop user, I care.

    3. Re:great news by MrNaz · · Score: 5, Insightful

      I think anyone who cares and knows anything about this debate is hoping Linus sees the light and allows work to begin on pluggable schedulers. There are no definitive arguments against having pluggable schedulers, and plenty of formidable ones for them. I never really understood Linus' handling of Con in the past, I really hope that, this time round, the new BFS is given a fair assessment, and if it's found to be better under desktop use patterns, adopted for use in desktop distros.

      The idea that the Nokia N900 smartphone uses the same process scheduler as my now-dated laptop as well as my 8 core server is just silly.

      --
      I hate printers.
    4. Re:great news by rnws · · Score: 1

      "better options already exists for servers where I am guessing CFS is used." Well, that depends on your workload (which is the thrust of the debate). With one of the HPC products I regularly work with, we have a best-practice of using the noop scheduler instead of cfs - this tiny tweak alone will see at least a 30% improvement in our I/O performance (which is nothing to be sneezed at when we're moving ~700MB/s). Being able to have pluggable schedulers is great because Linux can be all things to all people and it does make sense to have options (lets not go crazy here - too much choice can also be a bad thing). People talk about the difference between Linux on netbooks and servers for example but even in the "server" space there is VAST difference between small business file & print, clustered Oracle or scientific data acquisition workloads. I too hope that this debate doesn't go away and also hope that it doesn't become as heated and personal as in the past so that we can all benefit from a selection of good ideas.

    5. Re:great news by M.+Baranczak · · Score: 1

      Does it even need to be a run-time option? A single installation will always run on the same hardware, more or less, so what's the point? Just make it a compile-time setting. Distros can decide which scheduler is right for them, or offer a choice of kernels with either one or the other.

    6. Re:great news by Jurily · · Score: 1

      but linux is too broadly applied to force it to meet all cases. realtime, embedded, servers, desktop: i just don't think one scheduler can be shoehorned to maximize performance for all those.

      I thought scalability was the main strength of Linux as an OS. Perhaps it's time we did the same with the kernel. Just as you don't need CUPS if you don't have a printer, you don't need a scheduler scaling to 2^32 CPUs for a laptop.

    7. Re:great news by smoker2 · · Score: 2, Interesting

      The hardware is not the point. The software is. I run a linux machine which I use both as a media and web server, and as my main desktop for web browsing, email, WP etc. A hard coded setup would not be useful there.

      While I'm here, why does the summary [sic] i.e. It is a contraction of 2 words and perfectly acceptable. And in case they were worried about repetition with the following words " it is ", i.e. means "that is" as in "that is to say" used with a pause in normal speech. You have to read the preceding sentence, not take terms in isolation.

    8. Re:great news by myvirtualid · · Score: 2, Informative

      ...why does the summary [sic] i.e

      Because the 'i' should have been capitalized since it was the beginning of a new sentence. Had Kolivas written "hardware, i.e." there would be no sic.

      --
      I'm here EdgeKeep Inc.
    9. Re:great news by TheRaven64 · · Score: 4, Interesting

      Why does Linux not have pluggable schedulers already? You can choose the scheduler in FreeBSD by changing a compile-time option and in OpenSolaris and Xen by changing a boot-time parameter. I think HURD can swap them out at run time, but I only know one person who actually runs HURD, and he also runs other systems for real work. If your system already has clean interfaces for the scheduler, then making them pluggable at compile time is trivial and making them pluggable at boot time is only a small amount of effort (although a bit more to make sure this has no performance side-effects). If it doesn't already have clean interfaces to the scheduler, then it probably has more serious problems than the lack of plug-support.

      --
      I am TheRaven on Soylent News
    10. Re:great news by Anonymous Coward · · Score: 1, Interesting

      Out of interest, does it schedule disk access too? The article only mentions CPU scheduling, but I find that I rarely hit (or even get near) the 100% CPU usage, but when some process is monopolizing the hard disk (which I bought quite recently and is supposed to be moderately fast) everything becomes slow as tar, even when I set the process' priority to "idle". I'm using Windows XP at the moment, and have tested some GNU/Linux live CD's, which had the same problem, so understandably I'm more interested in how well schedulers cope with disk access.

    11. Re:great news by gbjbaanb · · Score: 4, Interesting

      OOh. I've just seen the 'thought for the day' at the bottom of the page:

      "One size fits all": Doesn't fit anyone.

      Even the gods of slashdot are getting in on the debate.

    12. Re:great news by boldie · · Score: 1

      Well it is nice to see the Gentoo boys (and girls?) are working on it.
      Some have seen very good CPU utilisation with BFS

    13. Re:great news by Zero__Kelvin · · Score: 1

      First of all, the use of "sic" was wrong, even to the point that it was placed in brackets rather than parenthesis. It doesn't belong. You should never begin a sentence with "i.e.", and if you do violate that good practice, the "i" in "i.e" or "e" in "e.g." are never capitilized. In other words smoker2 has a valid complaint, and your attempt at "explaining" just adds to the general level of misconception with regard to this issue.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    14. Re:great news by psm321 · · Score: 1

      It's not ideal, but check out ionice

    15. Re:great news by ta+bu+shi+da+yu · · Score: 2, Insightful

      The sic is in the wrong spot.

      It reads "it is a desktop orientated scheduler". Note the topic subject is "desktop oriented scheduler".

      It should read "it is a desktop orientated (sic.) scheduler.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    16. Re:great news by seizurebattlerobot · · Score: 1

      I'm just curious what kind of illogical mental gymnastics Linus is going to employ in his thoughtless dismissal of Con's work, this time.

    17. Re:great news by Velex · · Score: 1

      First of all, the use of "sic" was wrong, even to the point that it was placed in brackets rather than parenthesis.

      "The term sic is most often used in quoted material (usually in square brackets, and sometimes italicized)" —Wiktionary

      It doesn't belong.

      This is correct, though. I spent a few seconds scratching my head trying to figure out what kind of grammatical construction the gp was going for.

      ARG A PREPOSITION AT THE END OF MY SENTENCE *melts*. (It's funny, laugh.)

      --
      Join the Slashcott! Stay away entirely Feb 10 thru Feb 17! Close all tabs to prevent autorefresh!
    18. Re:great news by myvirtualid · · Score: 1

      So you're saying that there was an error in the original paragraph by Kolivas, correct?

      Which means we're in violent agreement so far.

      That leaves the question of the use of the word "sic". Correct?

      The word "sic" is used when quoting to indicate that the error in the quote was in the original and is not a transcription error. Refer to this reference, e.g.

      Was it pedantic? Sure! /. thrives on pedantry. Was it correct? Absolutely.

      --
      I'm here EdgeKeep Inc.
    19. Re:great news by macshit · · Score: 4, Interesting

      I never really understood Linus' handling of Con in the past

      Linux kernel development is all about "playing well with others": a very important part of the process is being able to handle criticism constructively and fix the problems it addresses, or show that it is wrong; that's the way progress is made. You need to do this again and again and again. Most criticism is very technical and can be quite insightful, but can also be strong and relentless -- people will point out every single little flaw, and possible flaws, and unclear points, and whitespace inconsistencies, and... To be a successful linux developer you need to be able to deal with this constructively, and the more important and core the area you're dealing with, the more important this becomes.

      The impression I've gotten from reading various past "Con threads", is that while he tries in the beginning, Con doesn't deal well with this process; he can't keep his ego submerged, gets frustrated, and everything (perhaps including Con himself last time I read one of these threads) ends up unravelling. The same thing has derailed other big projects too (i.e., reiser4, when Reiser himself was still involved).

      It's a shame when this happens, but basically the process is more important that specific pieces of technology -- technology can be replaced, but the process is what makes linux as good as it is.

      --
      We live, as we dream -- alone....
    20. Re:great news by Anonymous Coward · · Score: 0

      I just compiled it in my Thinkpad X61t, and it works nicely. It feels much faster, I can be compiling in one window, and if I click on the Terminal icon, I have a new one almost instantly. Thanks Con Kolivas!

    21. Re:great news by visualight · · Score: 0, Flamebait

      Hey MORON, take a few seconds and try to think outside of your own use case.

      --
      Samsung took back my unlocked bootloader because Google wants me to rent movies. They're both evil.
    22. Re:great news by Anonymous Coward · · Score: 3, Funny

      The sic is forward looking...

      - Peder

    23. Re:great news by Zero__Kelvin · · Score: 0, Offtopic

      "Hey MORON, take a few seconds and try to think outside of your own use case."

      I've thought of most use cases. Strangely, no amount of thinking of different use cases made any of the grossly incorrect statements made here suddenly true. No matter what case I consider, the damn kernel config tool(s) keep offering me a choice of which scheduler to select even though so many people have said it doesn't for example.

      So to recap, you think facts suddenly change based on which use cases I am considering, and it's me that is the moron? I love it when the mentally challenged call me a moron. ROTFLMAO

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    24. Re:great news by Mike+McTernan · · Score: 1

      Making schedulers runtime pluggable would make it really easy to get other people hacking on the Linux scheduler though.

      For example, you could lash up a reusable test harness to allow scheduler testing under well defined and repeatable scenarios. This may then allow more direct comparison between schedulers hopefully leading to a best of breed race. Making it runtime un/loadable would also speed up the development cycle for the scheduler much in the same way that loadable modules can often be more rapidly debugged and fixed by not needing a reboot for each change.

      You could even go crazy and make a scheduler plug in 'shim' just for the purpose of profiling different implementations under real workloads.

      The only thing I would say is that the whole scheduler API should be made in such a way that the scheduler is undeniably covered by the GPL. Binary blob schedulers would be the worst possible outcome and would go against the thought of trying to open up the scheduler as a means of furthering development and healthy competition.

      --
      -- Mike
    25. Re:great news by visualight · · Score: 1

      the damn kernel config tool(s) keep offering me a choice of which scheduler to select even though so many people have said it doesn't for example.

      This is _not_ the context in which you called people morons. This is:

      One or two understand that it means dynamically (run-time) changeable. Alas, those people seem to think that is a good idea and needed "feature." It isn't. If you are running a server that you also use as a desktop, it isn't Linux's problem that you are either on a shoestring budget or a moron.

      You're unable to keep track of your own arguments yet it's "other people" that are mentally challenged. Classic.

      --
      Samsung took back my unlocked bootloader because Google wants me to rent movies. They're both evil.
    26. Re:great news by visualight · · Score: 1

      Which part of that statement don't you understand? I'll say it again. If you have plenty of money and want to use a single computer as both a desktop system and a server, then you are a moron. Is that too complicated for your feeble little mind to understand?

      Is that a do over? You DID error in your first reply, replying again as if you did not will not help you.

      You DID NOT consider that there are valid use cases for using a single system as both a desktop and a server, although perhaps not at the same time, _regardless_ of budget. If you cannot think of one you are a moron. And no, I will not help you, it is my preference that you continue to go through life ignorant and illustrating the Dunning-Kruger Effect

      And now, you're dropping Linus' name as a trump card in place of actual logic. YOU FAIL.

      --
      Samsung took back my unlocked bootloader because Google wants me to rent movies. They're both evil.
    27. Re:great news by ultranova · · Score: 1

      This whole thread is almost completely full of people all asking when Linux will have a feature that it has had for as long as I can remember. Occaisonally the term "pluggable scheduler" is used to mean the ability to choose a scheduler at compile time, which has been in the kernel for as long as I can remember.

      This thread is about CPU scheduler, not IO scheduler. The kernel has multiple IO schedulers to choose from, but not multiple CPU schedulers, nor an architechture to support them.

      If you are running a server that you also use as a desktop, it isn't Linux's problem that you are either on a shoestring budget or a moron.

      That is good to know. Can you recommend an operating system that's geared for the 99% of us who are, in fact, running on such tight budget that we can't get a dedicated machine for every task we might want to perform?

      And calling people morons when you don't even know what's being discussed is quite ironic.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    28. Re:great news by Tenebrousedge · · Score: 1, Insightful

      All people are occasionally idiots; this is forgivable. Being an asshole is not.

      You would do well to learn some humility and respect. People here are most likely to be bright and honestly mistaken than they are to be stupid or lying. The appropriate response is not to flame them, but to educate them. Consider at all times the impact of your words.

      If you really must rant, post anonymously.

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    29. Re:great news by pwil3058 · · Score: 1

      Great news :-) Now, will the kernel people with Mr. Torvalds at their head, restart the whole debate on pluggable schedulers. Since his scheduler, as he says, degrades beyond 16 CPUs, better options already exists for servers where I am guessing CFS is used. So, he may be back, but the road ahead is still as steep?

      For what it's worth I (the last maintainer of the PLUGSCHED patch) have started reimplementing PLUGSCHED against the latest kernel source (now that the CFS scheduler code has stabilized). My reasons are much the same as Con's i.e. poor interactive response on the desktop necessitating renicing Xorg to -6 to fix.

      I'll be aiming to make available all the schedulers that were in PLUGSCHED in 2007 when it was last released and should have it available later this year. It is unlikely that the CPU scheduler driver interface will be able to support as radical a scheduler as Con's BFS (at least in the first version) but staircase should be there.

      Cheers

      Peter Williams

    30. Re:great news by AvitarX · · Score: 1

      Do you commonly switch between more and fewer than 16 cores?

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    31. Re:great news by rtfa-troll · · Score: 2, Insightful

      Linus Torvalds has, for once, made pretty clear arguments against it. Various philosophical ones etc. but also several solid technical ones

      1. it's better to have one tested scheduler
      2. since the scheduler can be parametrised there's nothing to stop it scaling
      3. "nobody has come close" to providing a pluggable implementation which efficient enough

      See this email and this one.

      The grandparent's statement that "here are no definitive arguments against having pluggable schedulers" glosses over the fact that Linus' arguments have to be proven wrong. I can believe that in this, like most things, Linus is wrong; however it's experimental science not philosophy. Someone has to write the code.

      The scheduler is probably the piece of kernel code which actually does something which gets called most (many times a second even if only user activity is ongoing). A level of inefficiency which would be okay in an IO scheduler which will normally have to wait for a slow disk access just can't be accepted in a process scheduler and even a single level of indirection might really be a killer. Possibly it would be better to have separate kernel builds for small and large installs than having pluggability in which case even CK's new scheduler may not prove the need for pluggable schedulers. Alternatively, maybe pluggability would have to be done with self modifying code which left no indirection in place?

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
    32. Re:great news by pthisis · · Score: 4, Informative

      The impression I've gotten from reading various past "Con threads", is that while he tries in the beginning, Con doesn't deal well with this process; he can't keep his ego submerged, gets frustrated, and everything (perhaps including Con himself last time I read one of these threads) ends up unravelling.

      Agreed; Con seems not to be able to work well in the process.

      e.g. Ingo ran a bunch of benchmarks on BFS and made a long post to LKML explaining his results, that, while critical of its performance on a series of benchmarks, bent over backwards to be very polite in tone, with things like:

      First and foremost, let me say that i'm happy that you are hacking the Linux scheduler again. It's perhaps proof that hacking the scheduler is one of the most addictive things on the planet ;-) ...

      General interactivity of BFS seemed good to me - except for the pipe test when there was significant lag over a minute. I think it's some starvation bug, not an inherent design property of BFS, so i'm looking forward to re-test it with the fix. ...
      I hope to be able to work with you on this, please dont hesitate sending patches if you wish - and we'll also be following BFS for good ideas and code to adopt to mainline.

      And Con responded with a very defensive and confrontational tone:
      I'm not interested in a long protracted discussion about this since I'm too busy to live linux the way full time developers do, so I'll keep it short, and perhaps you'll understand my intent better if the FAQ wasn't clear enough.

      Do you know what a normal desktop PC looks like? No, a more realistic question based on what you chose to benchmark to prove your point would be: Do you know what normal people actually do on them?

      Feel free to treat the question as rhetorical.

      Full exchange here:
      http://thread.gmane.org/gmane.linux.kernel/886319

      --
      rage, rage against the dying of the light
    33. Re:great news by RivieraKid · · Score: 1

      First of all, the use of "sic" was wrong, even to the point that it was placed in brackets rather than parenthesis

      Actually, the brackets are correct - it indicates that it was not part of the original quote, but was added later, by a different author.

      --
      "Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves
    34. Re:great news by Anonymous Coward · · Score: 0

      Not so steep if Fedora, Ubuntu and OpenSuse kick in.

    35. Re:great news by RivieraKid · · Score: 1

      Nope, that's a different scheduler.

      In a nutshell - if you're waiting on IO, there's nothing you can do until the I/O completes. Get a faster disk, get more memory for cache, you can smooth out the performance curve, but sooner or later, you're gonna be stuck waiting on hardware.

      --
      "Necessity is the plea for every infringement of human freedom. It is the argument of tyrants; it is the creed of slaves
    36. Re:great news by DeathToBill · · Score: 1

      Having read the tread, I can understand Con's frustration; presented with a scheduler that is supposed to make the desktop experience more fluid, Ingo ran a bunch of server-style benchmarks on it which, to everyone's astonishment, didn't perform as well as a scheduler designed with server loads in mind.

      I look forward to trying out Con's scheduler, once I get my dead disk replaced...

      --
      Slashdot - News for Nerds, Stuff that Matters, in ISO-8859-1 Has just realised that beta makes this signature redundant
    37. Re:great news by smash · · Score: 2, Informative
      Well, he has a point.

      For desktop use, I doubt many users *care* whether or not they drop some percentage of throughput on interactive apps, if it means that processes actually run "properly" (eg, video playback, gaming, audio processing, etc).

      ingo benchmarking some abstract processes that no desktop user would actually run day to day merely reinforces con's point.

      Yes, con may have come off as a bit of an arse, but given his previous "do not contact me regarding kernel matters" posting to LKML, only to be e-mailed with benchmarks on non-desktop hardware, performing non-desktop tasks that shows CFS to be "superior", I'm not surprised.

      I'm guessing he's pretty much "over" banging his head against the wall, trying to get people to "see the light" (or understand that the point is improving interactivity, rather than benchmark numbers).

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    38. Re:great news by BhaKi · · Score: 1

      Why does Linux not have pluggable schedulers already? You can choose the scheduler in FreeBSD by changing a compile-time option and in OpenSolaris and Xen by changing a boot-time parameter. I think HURD can swap them out at run time, but I only know one person who actually runs HURD, and he also runs other systems for real work. If your system already has clean interfaces for the scheduler, then making them pluggable at compile time is trivial and making them pluggable at boot time is only a small amount of effort (although a bit more to make sure this has no performance side-effects). If it doesn't already have clean interfaces to the scheduler, then it probably has more serious problems than the lack of plug-support.

      In the context of this discussion, "pluggable" means at-least boot-time selection (but some people want run-time selection too). Linux doesn't have it. And Linux's scheduler code does not even have clean interfaces as those other OSes. The problem is made worse by the politics of sponsoring companies. Like Con Kolivas said a long time back, these companies are willing to have 10% latency increase on desktops if it gives a 1% throughput increase on servers. So I don't expect things to change in the near future.

      --
      The largest prime factor of my UID is 263267.
    39. Re:great news by BhaKi · · Score: 2, Informative

      Alternatively, maybe pluggability would have to be done with self modifying code which left no indirection in place?

      No. In most modern CPU architectures, schedulers are implemented by handling a timer interrupt. The address for the handling code is put in the interrupt vector table during kernel start-up. For implementing pluggable-scheduling, all you need to do is to change the contents of the interrupt vector table. Once that is done, scheduling happens the same way as when there's only a single scheduler. So no. It doesn't require self modifying code and it's not a performance overhead to have pluggable schedulers.

      --
      The largest prime factor of my UID is 263267.
    40. Re:great news by Anonymous Coward · · Score: 0

      The idea that the Nokia N900 smartphone uses the same process scheduler as my now-dated laptop as well as my 8 core server is just silly.

      Why, exactly, is that idea silly?

      Far beneath it, there are the same electrons. Above it, there are the same instructions. Just beneath it is slightly different hardware.

      So, again, why exactly is that idea silly?

      Because you think it is, or because of some actual, tangible and factual reasons?

      I am curious.

    41. Re:great news by IdntUnknwn · · Score: 1

      Ingo's benchmarking completely misses the point of BFS though, which is probably why CK is frustrated. Ingo's benchmarks only measure throughput, they don't measure latency or responsiveness, which is the whole point of BFS.

    42. Re:great news by Anonymous Coward · · Score: 0

      ...I only know one person who actually runs HURD...

      You know the guy who runs HURD?!? Cool!

    43. Re:great news by Anonymous Coward · · Score: 0

      CFS? cluster fuck scheduler?

    44. Re:great news by Bootarn · · Score: 1

      You don't even have to change the interrupt vector. You can use it to jump to a general rescheduling routine, which switches process by having the scheduler return the PID or thread ID of what it thinks should be running next. This way the scheduler is very easy to replace, and no modification of the interrupt vector is needed.

    45. Re:great news by Abcd1234 · · Score: 2, Insightful

      Well, he has a point.

      So what? If you have a point, but you're being a dick about it, people are far less likely to notice. And given Ingo at least *tried* to be civil, the least Con could do is return the favour, rather than immediately becoming an offensive asshole. For example, he could've responded with:

      "Well, recall, the purpose of the scheduler is to enhance desktop performance. Thus, I've designed it to favour low latency over high throughput, and as a result, it's not really surprising that, in throughput-related tests, which I consider more of a server-style workload, BFS performs less well as compared to other schedulers."

      No no. He opted for the far more dickish:

      "Do you know what a normal desktop PC looks like? No, a more realistic question based on what you chose to benchmark to prove your point would be: Do you know what normal people actually do on them?"

      Honestly, WTF? And he's surprised when he attracts hostility? Please.

      Con: Step 1 to becoming a decent human being: try not being an asshole. No, really.

    46. Re:great news by smash · · Score: 1
      There's only so much passive-aggressive shit one can take. If you read why Con quit in the first place, Ingo/rest of list's behavior this time around is pretty much identical. Despite Con making it quite clear previously that he is NOT TO BE CONTACTED by those same people regarding kernel stuff.

      Its EXACTLY the same old shit con quit over before. LKML dudes say "throughput sucks on my high end box on abstract test X". No shit. Try running the tasks it was designed to optimize (i.e., real world desktop applications) and then verify yay/nay for whether it does as claimed. Beating the CFS on abstract benchmarks on high end hardware is explicitly NOT what it is designed for.

      Ingo's post was written to appear civil, but it was a big "fuck you con" if you read between the lines.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    47. Re:great news by Abcd1234 · · Score: 1

      Ingo's post was written to appear civil, but it was a big "fuck you con" if you read between the lines.

      OR, you could not be a paranoid dickhead and choose not to assume the worst right away. But you're right, it makes far more sense to assume Ingo was giving "a big 'fuck you con'", and decided to do it with an extensive set of benchmarks and followup discussion. Yes, that sounds very sensible indeed...

    48. Re:great news by smash · · Score: 1
      The benchmarks he chose were irrelevant for desktop interactivity. That's the point. Con went through many months of similar b.s. last time around, said "don't contact me in future" and instead gets email from Ingo comparing his scheduler on a set of irrelevant data. Hence con's response of "do you know what desktop hardware is, and what people do with it" (paraphrased).

      Out of context, assuming it was a big "fuck you" would be paranoid, yes. But after several months of well publicized animosity between key kernel developers and Con last time around, I'm quite sure he's well past caring.

      Either way, several people have responded on list stating improvements on the tasks it was designed to improve, and have perhaps highlighted some of the problems with the current scheduler. Anyone who has used Linux back to back with BSD, OS X or even Windows can see that there are glaring problems with Linux for desktop use right now, and I'd certainly agree with the assertion that things were better for interactive use back in the 2.2 and even 2.0 days.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    49. Re:great news by Anonymous Coward · · Score: 0

      He doesn't want BFS to be included in the mainline kernel. Why should be involve himself in the process?

    50. Re:great news by BhaKi · · Score: 1

      It seems you mean compile-time pluggability when you say "to replace". Your scheme works just fine until we want run-time pluggable scheduler in which case, the general rescheduling routine will have to dynamically decide which scheduler is to be used. This decision-making will consume CPU time and hence increase scheduling latency. So I think the only proper way to run-time pluggable scheduling is to change the interrupt vector (for timer interrupt) dynamically.

      --
      The largest prime factor of my UID is 263267.
    51. Re:great news by Bootarn · · Score: 1

      No, sorry for my fuzziness. I meant run-time pluggability. I didn't mean it to be a general scheduler, just a generic way to call a run-time pluggable scheduler

      I meant for something like a pointer to the scheduling function from the code in the interrupt vector. I used this technique in a kernel I wrote at the university. The main difference between what I described here and my implementation is that the scheduler itself was responsible for the context switch. Not a great idea in terms of maintainability, but it was quite fast.

    52. Re:great news by BhaKi · · Score: 1
      This,

      a pointer to the scheduling function

      is the part that gives rise to inefficiency. Calling a variable function is, in general, more expensive than calling a fixed function. The one instance where it's not all that expensive is when the pointer is an interrupt vector. CPUs have optimized circuits that make branching to a variable interrupt handler faster than branching to a variable function. Of course, it doesn't matter in academic projects where microsecond differences in scheduling latencies don't mean much. Good for you.

      --
      The largest prime factor of my UID is 263267.
    53. Re:great news by jbolden · · Score: 1

      I notice your low user number so I'll assume you were also around in the 2.0 days. I'll agree that I can't think of any latency problems I had in the mid 1990s but.... how would I even compare? Entirely different application architectures, entirely different GUIs, entirely different X. I'm not sure how I would be able to know.

    54. Re:great news by smash · · Score: 1
      You probably can't. I just know that back in the 2.0 days I could fire up X, run a copy of Doom/Quake in a window, and doing other stuff wouldn't result in the OS lagging like a bitch, once you turned on DMA for your IDE controller with hdparm.

      Even doing "simple stuff" on a modern linux box results in the GUI lagging.

      FreeBSD doesn't do that (running the same desktop environment). Windows doesn't do that. OS X, even doing a lot more in terms of window composting, etc does not do that. None of them do to anywhere near the same extent, anyway.

      I use to just put it down to shitty compiled versions of KDE or whatever on most Linux distributions (linked to some dodgy library or whatever) - but the fact that there's a scheduler out there that appears to fix it, and its a widespread problem (judging by the mailing lists) leads me to believe that in reality, the current scheduler must be pretty fucked for desktop use.

      I've had FreeBSD boxes running with load of 10-12+ without noticing it (happened run top because background tasks were taking a while, and gone "oh, shit, what's going on"), get a semi-recent linux box up to a load of 4-5 and you certainly notice the responsiveness drop. Back in the 2.0 days I tested Linux with load up to 13+ before as well and it handled it just fine (I remember testing that when i figured the hdparm shit out back in the day).

      All of this is anecdotal, with no "proof" or benchmarks, so take it with a grain of salt, but even back in 2000 or so, responsiveness under load was a primary motivation for me to start using FreeBSD a lot more in preference to Linux.

      I invite you to test some of the other OS options out there and compare for yourself... throughput may win benchmark contests, but responsiveness is what makes a good desktop experience - which is con's point...

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    55. Re:great news by Anonymous Coward · · Score: 0

      Yeah, Ingo taking Con's unfinished unannounced work, running some tests and putting the results in a place like LKML and going "well look at this, it's kind of neat but it sucks" is a nice thing to do.

  3. Glory! by CAIMLAS · · Score: 5, Interesting

    May I be the first to say "amen"? I've been very dissatisfied with the 2.6 kernel and its schedulers on the desktop, CFS in particular. CFS seems entirely braindead for desktop use compared to the older schedulers in 2.4 and yes, even 2.2.

    A desktop machine needs to be, first and foremost, responsive. If it isn't, it's comparable to the cursor freezing and input taking several seconds to appear: on today's hardware, one might start to think "hey, did it freeze on me?" - completely unacceptable.

    Maybe it can be chalked up to the non-priority of X and video at the kernel level; I don't know. Whatever it is, it used to be better, on very pathetic (133MHz) hardware, while doing a lot more (and when such hardware was not all that powerful anymore, as well).

    My question is: is it in the kernel tree yet? Is this that 2.6.31 scheduler change I heard about earlier yesterday, or is it something Completely Different?

    Oh yeah, and which other scheduler's, if any, did this guy write?

    --
    ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    1. Re:Glory! by kav2k · · Score: 5, Interesting

      Citing the FAQ:

      Are you looking at getting this into mainline?

      LOL.

      No really, are you?

      LOL.

      Really really, are you?

      No. They would be crazy to use this scheduler anyway since it won't scale to
      their 4096 cpu machines. The only way is to rewrite it to work that way, or
      to have more than one scheduler in the kernel. I don't want to do the former,
      and mainline doesn't want to do the latter. Besides, apparently I'm a bad
      maintainer, which makes sense since for some reason I seem to want to have
      a career, a life, raise a family with kids and have hobbies, all of which
      have nothing to do with linux.

    2. Re:Glory! by Trepidity · · Score: 4, Informative

      My question is: is it in the kernel tree yet? Is this that 2.6.31 scheduler change I heard about earlier yesterday, or is it something Completely Different?

      No, and probably won't ever be, though perhaps some ideas will be borrowed.

      From his FAQ:

      Are you looking at getting this into mainline?

      LOL.

      No really, are you?

      LOL.

      Really really, are you?

      No. They would be crazy to use this scheduler anyway since it won't scale to
      their 4096 cpu machines. The only way is to rewrite it to work that way, or
      to have more than one scheduler in the kernel. I don't want to do the former,
      and mainline doesn't want to do the latter. Besides, apparently I'm a bad
      maintainer, which makes sense since for some reason I seem to want to have
      a career, a life, raise a family with kids and have hobbies, all of which
      have nothing to do with linux.

      Can it be made to scale to 4096 CPUs?

      Sure I guess you could run one runqueue per CPU package instead of a global
      one and so on, but I have no intention whatsoever at doing that because it
      will compromise the performance where *I* care.

      The "bad maintainer" part is referring to bad blood over the adoption of Ingo Molnar's CFS over Kolivas's own RSDL, in particular at least one LKML poster suggesting that, all else being equal, it'd be better to merge Molnar's code, as he was more likely to be a reliable maintainer (Molnar's more tied into the workings of the mainline kernel development/merging/etc.).

    3. Re:Glory! by kav2k · · Score: 5, Informative

      Oh yeah, and which other scheduler's, if any, did this guy write?

      SD scheduler

    4. Re:Glory! by BiggerIsBetter · · Score: 5, Insightful

      No. They would be crazy to use this scheduler anyway since it won't scale to
      their 4096 cpu machines. The only way is to rewrite it to work that way, or
      to have more than one scheduler in the kernel. I don't want to do the former,
      and mainline doesn't want to do the latter. Besides, apparently I'm a bad
      maintainer, which makes sense since for some reason I seem to want to have
      a career, a life, raise a family with kids and have hobbies, all of which
      have nothing to do with linux.

      Which is not to say that it might not find it's way into the Ubuntu Desktop mainline patchset, for example. Sure it might not make sense for the mainline kernel, but it surely makes sense for a user focused distro like Ubuntu - they already have patched base and server kernels, so why not a genuine desktop targeted kernel?

      --
      Forget thrust, drag, lift and weight. Airplanes fly because of money.
    5. Re:Glory! by MichaelSmith · · Score: 2, Interesting

      The "bad maintainer" part is referring to bad blood over the adoption of Ingo Molnar's CFS over Kolivas's own RSDL

      Yeah but Con just didn't give the impression that he intended to be around to support his code. He is an anaesthetist. Software is a hobby which he could give up whenever he wants to. I think that is very different from somebody who is doing software for their career.

    6. Re:Glory! by blind+biker · · Score: 4, Insightful

      I wonder what BeOS had, that was so good. I mean, was it a scheduler thing? Or was it the pervasive multithreadedness that the OS almost forced upon the developers? Whatever it is, it worked like black magic: BeOS would always listen to the user input, no matter what the heck it was doing in the background, no matter what insane load was on the CPU - your mouseclicks were always reacted upon immediately, your drags were always reacted upon immediately, your typing, resizing, brushstrokes, midi-signals, whatever, always, under any circumstance, were immediately and smoothly followed by the correct response.

      I was hoping Windows 2000 would achieve that, then I was hoping Windows XP would achieve that, then I was hoping some of the newer 2.6 kernels in Linux coupled with innovations in X would achieve that - but I was always deeply, utterly disappointed. Then I kinda hoped Vista would get somewhat close to what BeOS did. Oh yeah, now that was a hope decisively smashed.

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    7. Re:Glory! by Trepidity · · Score: 4, Informative

      Yeah, that makes sense, but he seems to have taken it personally. It sounds like part of it stems from his feeling that Molnar unnecessarily wrote a replacement using his ideas and got credit for it, instead of helping out to turn one of Kolivas's fair-scheduling proposals into something that could be merged. Though from what I can tell Molnar's replies are all pretty friendly, and he seemed keen to provide appropriate credit.

    8. Re:Glory! by kojot350 · · Score: 1

      According to the latest Ars Technica article about Snow Leopard, BeOS had used threads for everything and it didn't worked out quite well in the end unfortunately...

      --
      [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
    9. Re:Glory! by blind+biker · · Score: 1

      According to the latest Ars Technica article about Snow Leopard, BeOS had used threads for everything and it didn't worked out quite well in the end unfortunately...

      How so? Technically, BeOS as a user-friendly and responsive desktop environment, is still unbeaten. It tanked in marketshare, but that had nothing to do with using threads with everything.

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    10. Re:Glory! by amn108 · · Score: 1

      It is certainly a good thing - instant response (as far as the user is concerned, since "instant" is relative here). I have never used BeOS, and have to wonder - how was its "race-to-complete" task performance? If everything in the system was so catered to response timings but (concurrent) task performance suffered (in a pre-emptive multitasking OS, every task shares time with others, at least the CPU scheduler), then the user is not happy either. He/she wants instant response AND switft audio/video encoding/decoding (applications that are CPU bound).

    11. Re:Glory! by mvdwege · · Score: 0

      I would say that Con's FAQ entries demonstrate exactly that Linus was right. That is not the attitude of a reliable maintainer. In fact, the whole rant sounds like a teenager with a chip on his shoulder. And given that Con is supposed to be a mature professional, that says a lot.

      Of course, there is also the fact that Con and his fanbois didn't back up their position with benchmarks in the entire CK scheduler flamewar, instead relying on 'it just feels faster' subjective judgments.

      I say, let him play in his little sandbox. If there's good ideas in there, they'll get lifted out. If this is yet another episode of the 'Con Kolivas is great!' show, it'll disappear again like last time.

      Mart

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    12. Re:Glory! by kojot350 · · Score: 2, Informative

      "...While all that pervasive multithreading made for impressive technology demos and a great user experience, it could be extremely demanding on the programmer. BeOS was all about threads, going so far as to maintain a separate thread for each window. Whether you liked it or not, your BeOS program was going to be multithreaded."

      "GCD embodies a philosophy that is at the opposite end of the spectrum from BeOS's "pervasive multithreading" design. Rather than achieving responsiveness by getting every possible component of an application running concurrently on its own thread (and paying a heavy price in terms of complex data sharing and locking concerns), GCD encourages a much more limited, hierarchical approach: a main application thread where all the user events are processed and the interface is updated, and worker threads doing specific jobs as needed."
      Very good in-depth article btw. http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/1

      --
      [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
    13. Re:Glory! by mwvdlee · · Score: 4, Insightful

      The whole point is moot. Relying on a single maintainer is just plain stupid. "All things being equal" they should choose the code which OTHER people can maintain easier.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    14. Re:Glory! by Anonymous Coward · · Score: 0

      Software is a hobby which he could give up whenever he wants to.

      You realize this is how most of the linux world works right?

    15. Re:Glory! by MichaelSmith · · Score: 1

      Software is a hobby which he could give up whenever he wants to.

      You realize this is how most of the linux world works right?

      I am not sure it is how the kernel developers work. Think about it: it is likely that Con Kolivas has never once used an operating system other than windows in his working environment. He uses linux at home, in his spare time. He may never have seen Linux used in a large scale production environment.

    16. Re:Glory! by AleBaba · · Score: 1

      all of which have nothing to do with linux.

      Ahh, and I thought his children were penguins and he was sitting in his room all day and night eating pizza and flaming people on lkml. Well, I guess I'll have to revise my image of kernel hackers then...

    17. Re:Glory! by Anonymous Coward · · Score: 0

      The attitude of a reliable maintainer is to take all the abuse Linus throws at you, whether he's right or wrong.

    18. Re:Glory! by AleBaba · · Score: 1

      ...he could give up whenever he wants to.

      That's always something that can happen. For instance ReiserFS made it's way into the kernel and turned out to be a pain in the ass to maintain.

    19. Re:Glory! by Anonymous Coward · · Score: 0

      This isn't run priorities causes this odd temporary lock-up, there's something weird going on with IO that freezes even simple things like entering keystrokes into terminals. It started somewhere in the 2.4 tree and it's very frustrating. I get it on OS X on the mac pro too, so I'm guessing it's triggered by something around how kernels handle SATA2.

    20. Re:Glory! by Hurricane78 · · Score: 5, Informative

      What is that? You don't have the choice of scheduler in your kernel? I'm using the Zen sources, and I get to choose between least half a dozen schedulers, including other settings. I am certain that this scheduler will make it into that patchset, and that I will enable it, as soon as zen-sources-2.6.31 get installed on my system.

      After all this is Linux! Not some one-company-one-kernel monoculture!

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    21. Re:Glory! by solevita · · Score: 1

      Not only Ubuntu, but what about Openmoko, Maemo, Android, OLPC et al? Ok, we're probably not going to see patched Android kernels, but there seems like a lot of projects that could benefit from this, if it's as good as we're told it is.

    22. Re:Glory! by fsiefken · · Score: 1

      May I be the second to say "AMEN!". Linux is always said to be the fastest most responsive desktop os on older hardare. Still xp can beat x/gnome/linux 2.6 on a low end machine, perhaps this scheduler will change it.

    23. Re:Glory! by Anonymous Coward · · Score: 0

      a main application thread where all the user events are processed and the interface is updated, and worker threads doing specific jobs as needed

      You mean like a BLooper processing messages from the app_server and passing them on to the appropriate thread(s) for the BWindow's & BView's? Yeah GCD is totally different...

    24. Re:Glory! by gabebear · · Score: 1

      You do have to give Hans Reiser credit for putting the work in to maintain his code... Reiser4 was/is one of the most cutting edge file-systems available. If he hadn't murdered his wife we might not even be looking to EXT4 and BTRFS.

    25. Re:Glory! by Progman3K · · Score: 1

      I would say that Con's FAQ entries demonstrate exactly that Linus was right. That is not the attitude of a reliable maintainer. In fact, the whole rant sounds like a teenager with a chip on his shoulder. And given that Con is supposed to be a mature professional, that says a lot.

      You're making too much out of it.
      The whole idea of Linux is that you can hack it.
      Con is actually doing science; he developed a theory of operation, wrote a kernel around it and now it's possible for others to develop more ideas and research into the problems he was trying to address.

      --
      I don't know the meaning of the word 'don't' - J
    26. Re:Glory! by gabebear · · Score: 1
      I doubt this scheduler will give much of an improvement... it's likely it will never make it into a mainline distro since it's hard to tell if it actually helps. He fails to provide any kind of benchmark for proving this scheduler is better.

      Linux on low-end hardware is not being ignored:

      The next major release of Ubuntu will be faster on low-end hardware.

    27. Re:Glory! by Jurily · · Score: 1

      The only way is to rewrite it to work that way, or
      to have more than one scheduler in the kernel. I don't want to do the former,
      and mainline doesn't want to do the latter.

      Who gives a fuck about mainline? If it's good, people will use it. And if more people use this than the default one, perhaps it's time to rethink some things.

    28. Re:Glory! by Mprx · · Score: 1

      Response time is more important. For bulk data processing you can leave it running overnight. You're not there to notice any slowdown. If you do this kind of processing often then you'll probably have a dedicated machine with a kernel optimized for the task, but for most people it makes no difference if it took 6 hour or 8 hours. I use a latency tuned 2.6 kernel, but even on fast Core 2 Duo with 4GB ram I'm not happy with interface responsiveness. I'm very interested in this new scheduler.

    29. Re:Glory! by gbjbaanb · · Score: 1

      I was hoping Windows 2000 would achieve that, then I was hoping Windows XP would achieve that, then I was hoping some of the newer 2.6 kernels in Linux coupled with innovations in X would achieve that - but I was always deeply, utterly disappointed. Then I kinda hoped Vista would get somewhat close to what BeOS did. Oh yeah, now that was a hope decisively smashed.

      Yup, but apparently Microsoft 'listened' to the screams of outrage, hate and despair that the users of Vista cried out, and changed things in W7 to make user repsonsiveness much more important. I'd like to say they went and listened to feedback from their users, but it was hard not to hear it.

      From some reviews I've read, the decision was more a marketing one - W7 is just as slow as Vista in many parts, but because the UI responds to the user quicker (even though the time the operation takes is just the same) everyone thinks that W7 is a much more usable, ans faster OS. It isn't, its just more responsive. But at the end of the day, who cares about that? Users do, and we really can't give them moire reasons to use Windows over Linux, please. (perhaps we need some reproducible benchmarks, like all the competitive effort that went into making Web servers work faster)

      Anyway, Windows has had 2 schedulers for ages - you can select desktop or server style processing (and cache strategy) since NT4.

    30. Re:Glory! by Anonymous Coward · · Score: 2, Insightful

      You realize most Linux and open-source developers in general are employed to do what they do? The image of the lone bedroom programmer cranking out awesome code is mostly a romanticised myth.

    31. Re:Glory! by Anonymous Coward · · Score: 0

      I read some on the lkml when this first happened, although not extensively. From my reading it seems to me that there was enough blame to go around. Linus, as is his norm, wasn't exactly Mr. Nice Guy in this situation either.

      To place all the blame on, and knock only Con for, well, acting less than mature, isn't quite equitable. Everyone has feelings, and when they get hurt we all tend to act out some.

    32. Re:Glory! by Anonymous Coward · · Score: 2, Insightful

      The pervasive threading made it somewhat more difficult to actually write applications for, and considerably more difficult to write cross-platform applications that worked well on BeOS and other systems (Windows, Mac, Unix and so on). That didn't help with the fairly small number of applications available for BeOS. By all accounts, the rest of the OS provided a pretty decent API though.

      Using a multi-threaded UI isn't unique to BeOS though. It just happens to be the only platform that required a multi-threaded UI to do anything at all. At least two platforms come to mind where a multi-threaded UI is required, because the framework is just too slow and unresponsive if you don't.

      In Java, Swing UIs tend to perform abysmally badly if you do any non-trivial work inside the UI thread. The UI code isn't all that fast, and it's design lends itself toward doing lots of work in the UI thread, which causes the UI to hang. Most Swing applications have terrible responsiveness as a result. However, you can use worker threads to actually do the work, and use the UI thread only for event handling - if you do that, a Swing application can be extremely responsive. It's slightly trickier to do, but once you get the hang of it, it's not too hard.

      The same is pretty much true of .Net's Windows.Forms. It's a bit faster than Swing, although not by much (some parts are actually slower - System.Drawing vs Java2D, for example), so it's a little more forgiving of doing work in the UI thread. It will still bite you in a non-trivial application. Of course, the framework provides absolutely no help in writing a multithreaded application, and all of the tools, examples and documentation make writing a multi-threaded application far more difficult than it should be. You [i]can[/i] write a multi-threaded Windows.Forms application, but nearly nobody does. Which is a shame because, as with Swing, getting all the work off the UI thread makes a huge difference to the application's responsiveness.

      Most other frameworks are fast enough that most application developers don't feel the need to multi-thread the UI, because the UI isn't noticeably slow. While it might not actually be slow, it surely could be much faster.

      I kind of like Qt 4's approach. It's still optional, but it makes it pretty easy to create worker threads. The worker threads communicate using signals and slots, and Qt automatically handles dispatch between threads by mapping a cross-thread signal to an event on the target thread. It's pretty much the simplest approach I've ever seen - it works the same way as .Net's cross-thread delegate invocation, but it's completely transparent, and doesn't require anywhere near as much pointless boilerplate code.

    33. Re:Glory! by Anonymous Coward · · Score: 0

      I am no expert on kernel politics but from what I've read (here and elsewhere). the setup is something like this:
      Ck writes code but doesn't bother with kernel politics and (allegedly) has better things to do than maintain old code
      Linus has a problem with ck (might be because of 1, but who knows)
      Molnar is Linus's bitch

      CK proposes a much better scheduler, Linus rejects but tell molnar to go reimplement pretty much the whole thing.
      Molnar does this but doesn't try and hide that hes just redoing CK's work.
      Linus accepts Molnar's work.

    34. Re:Glory! by Anonymous Coward · · Score: 1, Insightful

      I would say that Con's FAQ entries demonstrate exactly that Linus was right. That is not the attitude of a reliable maintainer. ...

      My observation is that Con tried to "work within the system" and got nowhere. He ran up against the politics and personalities at core of Linux, and once you've done that, there's nowhere to go. At some point, I can't blame the man for throwing up his hands and adopting a "Who The Fuck Cares?" attitude. I don't think it says much about his "reliability". I think it says more about the limits of the "benevolent dictatorship" Linux governance model. I'm not saying that a better model exists -- I'm just saying the current model isn't perfect. One consequence of Linus' dictatorship is that a certain number of talented people will be driven away from Linux.

    35. Re:Glory! by Anonymous Coward · · Score: 0

      And... programming multi-threaded applications on BeOS was easier than any other OS/development environment at the time.

      It was almost a "no-brainer".

    36. Re:Glory! by edivad · · Score: 1

      I agree 100% with this. Teenager like, ego centric, attitude, constantly reaching the newbies for fanboys to unleash on LKML to make noise for him.
      The only fact that a totally mediocre developer get attention of the media, is the proof that the fanboys are already unleashed.
      Linus and Ingo were right in the first place, and at the end the scheduler ended up being a totally cleaner design than the half dozen proposed by Kolivas.

    37. Re:Glory! by Anonymous Coward · · Score: 0

      After 5x10^-2 centuries reading Ars, it seems to me that one can not take Ars Technica articles seriously if they relate to Apple or Sony.

      This part of the article seems to be comparing BeOS technology to Apple technology. In my opinion, the outcome of that particular comparison was predetermined.

      Nobel intent is always interesting, and Open Ended is good for keeping up with the occasional bit of open-source-related news that Slashdot misses, but you've got to stay away from Infinite Loop, and take about 30% of Opposable Thumbs with a grain of sea-salt.

    38. Re:Glory! by Anonymous Coward · · Score: 0

      From the description, it looks like Colin made a mistake choosing the operating system - he is actually a FreeBSD type of guy.

    39. Re:Glory! by SL+Baur · · Score: 1

      Molnar unnecessarily wrote a replacement using his ideas and got credit for it,

      The initial versions printed "Ingo Molnar" in the boot time logs. He only removed his name later.

    40. Re:Glory! by SL+Baur · · Score: 1

      In fact, the whole rant sounds like a teenager with a chip on his shoulder.

      Um, one could say the same thing about Linus when he was redoing Minix. Linus was right and all the microkernel whiners are wrong.

      I think this is a most interesting development.

    41. Re:Glory! by mvdwege · · Score: 1

      Which is why was referring to a specific faux pas by Con and his fanbois (not putting up numbers to bolster his claims). The fact that I do that does not in any way imply that I hold Linus and Ingo blameless. If I thought that, I would have written it.

      There's plenty of blame to go around. I'm just focusing on Con because this article is about him, and I really dislike the tone of that particular FAQ entry.

      Mart

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    42. Re:Glory! by rdx_21 · · Score: 1

      It's in the patchset already, see the Gentoo Zen sources link above.

    43. Re:Glory! by SL+Baur · · Score: 1

      I read some on the lkml when this first happened, although not extensively. From my reading it seems to me that there was enough blame to go around. Linus, as is his norm, wasn't exactly Mr. Nice Guy in this situation either.

      I was closely following lkml around this time. There was plenty going on behind the scenes that never got posted. The point at which Con's scheduler got removed from Andrew Morton's -mm tree was an unexplained IDE stall, that was initially blamed on Con's scheduler but was later triaged to a driver or block layer bug.

      On report of the IDE regression, Andrew posted cryptically about it being the end of the line for Con's scheduler and announced it was being stripped from his tree.

      I have utmost respect for Andrew Morton and his judgment, but usually he is a lot more outspoken in his rejection of code. The fact that on this one occasion he said basically nothing, and then never retracted an erroneous call speaks volumes to me. Something was going on behind the scenes that was never made public on lkml.

      After all, he continued to carry Reiser4 even after Hans got sentenced to prison for murdering his wife. Why the rush to get rid of Con's scheduler?

    44. Re:Glory! by malevolentjelly · · Score: 1

      May I be the second to say "AMEN!". Linux is always said to be the fastest most responsive desktop os on older hardare. Still xp can beat x/gnome/linux 2.6 on a low end machine, perhaps this scheduler will change it.

      There are a lot more desktop-oriented differences between XP and desktop linux far beyond scheduling.

      There's also a huge optimization and efficiency gulf in terms of the compiler and quality of code. In linux, you're far more likely to have some weak component jammed in the middle of the stack somewhere eating up resources, especially with gnome vs. XP.

    45. Re:Glory! by Luke_22 · · Score: 1

      funny thing is:
      Linus is quoted all over the internet saying:
      "I have never, ever cared about really anything but the Linux desktop."
      and we can't get this patch becouse it won't scale with more than 16 cpus.
      ...
      someone needs to make up his mind...

      --
      "I was gratified to be able to answer promptly, and I did. I said I didn't know." -- Mark Twain
    46. Re:Glory! by tyler_larson · · Score: 1

      May I be the first to say "amen"? I've been very dissatisfied with the 2.6 kernel and its schedulers on the desktop, CFS in particular. CFS seems entirely braindead for desktop use compared to the older schedulers in 2.4 and yes, even 2.2.

      Oh yeah, and which other scheduler's, if any, did this guy write?

      Actually, he wrote CFS. Or rather, he wrote the original implementation of CFS. Ingo Molnar re-wrote his implementation and announced it as if he had come up with the idea. At least, from Con's perspective that's what happened. That's why he left Linux development, and why he has no intention of trying to get his scheduler into mainline.

      --
      "With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea...."
      RFC 1925
    47. Re:Glory! by udippel · · Score: 1

      Of course, there is also the fact that Con and his fanbois didn't back up their position with benchmarks in the entire CK scheduler flamewar, instead relying on 'it just feels faster' subjective judgments.

      Not quite. For a server or database, of course transactions count all. But Desktop is a different animal, because 'snappyness' cannot be measured. It is much too subjective.
      I for one suffer from those 'short freezing' moments on the more recent kernels. Visibly doing nothing for a second or two is about the worst an OS can do to a user.

      Let's hope Ubuntu offers some precompiled kernels, at least for testing.

    48. Re:Glory! by Blakey+Rat · · Score: 4, Insightful

      No normal user cares about their video encoding being 2 seconds slower (over a 3 hour process) because they wanted to answer their email. If that's really important to you, you are probably doing your video encode overnight or during some time when nobody's using the computer, anyway, and then it doesn't matter.

      Instant response is *always*, *always* more important than all other tasks. Always. One of the many, many things BeOS got right.

    49. Re:Glory! by QuoteMstr · · Score: 1

      because 'snappyness' cannot be measured. It is much too subjective.

      That's irrational bullshit. If you can perceive it, it can be measured. If you think you can perceive it, but can't find a way to measure it, you're probably not actually seeing anything at all, but suffering from observer bias.

      That's why we have double-blind controlled trials to test phenomena with slight effects.

      ck's advocates are suffering from observer bias. They try his scheduler, and since they know they're trying his scheduler, and since we have a cognitive bias toward seeing what we expect to find, of course they claim it feels "snappier". Of course they can't bring up numbers to support this perception because there is no real effect.

      That's why, in science, we use numbers.

    50. Re:Glory! by QuoteMstr · · Score: 1

      Here's a simple heuristic: assign to each person a starting score of five. Each time someone uses "LOL" is a variation thereof in fleeting conversation, subtract one point. For each instance of "LOL" in a fixed medium (like an FAQ), subtract three. For "fail" used as a noun, subtract five. If that score dips below zero, there's a damn good chance that the person in question doesn't have anything valuable to contribute to anything I care about.

    51. Re:Glory! by Simetrical · · Score: 3, Interesting

      Anyway, Windows has had 2 schedulers for ages - you can select desktop or server style processing (and cache strategy) since NT4.

      That's not two schedulers, it's just some tunables. See pages 391 to 444 of Windows Internals, 5th Edition (or comparable pages in earlier editions). For instance, on Vista the default quantum is two clock intervals (a "clock interval" is usually about 10 to 15 ms), while on Windows Server it's twelve clock intervals. Similarly, on desktops an extra boost is given to the currently focused application. You can adjust this at runtime in the GUI on Vista under Advanced System Settings -> Advanced -> Performance -> Settings -> Advanced (yes, apparently scheduler adjustments are very advanced in Microsoft's view). It can be controlled with slightly more granularity with the registry key HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation (a six-bit bitfield).

      Linux currently offers scheduler tunables both at compile-time and runtime. Try ls /proc/sys/kernel/sched_*. It has more than Windows, apparently. I expect there are some compile-time options too, but I'm not an expert in anything related to kernels or systems programming.

      --
      MediaWiki developer, Total War Center sysadmin
    52. Re:Glory! by IntlHarvester · · Score: 1

      While I enjoyed Ars' review, that comparison between BeOS and SL was extremely superficial, and IMO you shouldn't draw any conclusions from it; especially about something specific like application responsiveness.

      (I mean, you can almost hear the author thinking "Threads?!? Um, didn't Be have threads?". It would have been a lot more interesting had he compared GCD to Java or Win32.)

      --
      Business. Numbers. Money. People. Computer World.
    53. Re:Glory! by youn · · Score: 1

      Lately yes, but most of them (including Linus) started their Linux involvment as a hobby. As a matter of fact, before redhat, there wasnt much commercial about linux.. and it was awesome as a system... very complete too

      --
      Never antropomorphize computers, they do not like that :p
    54. Re:Glory! by shutdown+-p+now · · Score: 4, Informative

      The same is pretty much true of .Net's Windows.Forms. It's a bit faster than Swing, although not by much (some parts are actually slower - System.Drawing vs Java2D, for example), so it's a little more forgiving of doing work in the UI thread. It will still bite you in a non-trivial application. Of course, the framework provides absolutely no help in writing a multithreaded application, and all of the tools, examples and documentation make writing a multi-threaded application far more difficult than it should be.

      Yes, and things like Control.Invoke to marshal invocations from background threads to UI, and especially BackgroundWorker, which are there specifically to provide a high-level (i.e. without locks) API for worker threads, with progress reporting and cancellation, must be just figments of my imagination?

      Have you actually written any WinForms code in .NET 2.0+?

    55. Re:Glory! by UnknownSoldier · · Score: 1

      Couldn't agree with you more!

      In BeOS, _every_ application had a _minimum_ of 2 threads. One for the UI, one for the processing. Multi-threading was forced upon apps. Threading in Windows sticks. Ever try to put in a bad CD-ROM and have all your apps just _STALL_ is just bad design.

      "Thread level parallelism of desktop applications"
      http://www.eecs.umich.edu/~tnm/papers/threads.ps

    56. Re:Glory! by ultranova · · Score: 2, Insightful

      ck's advocates are suffering from observer bias. They try his scheduler, and since they know they're trying his scheduler, and since we have a cognitive bias toward seeing what we expect to find, of course they claim it feels "snappier". Of course they can't bring up numbers to support this perception because there is no real effect.

      I haven't tested this scheduler. However, during Con's previous scheduler effort, sound skipped in ZSNES under mainline kernel, and didn't skip under Con's scheduler, in identically loaded machines. However, idle priority was not really idle-only, since a cpu-burning task running at idle priority could cause similar skipping (despite doing nothing but a simple "while(1);").

      That's why, in science, we use numbers.

      The numbers relevant here are the average, maximum and minimum latency, where latency is defined as the time between a sleeping task becoming eligible to run again and it actually starting to execute or a task exhausting its timeslice and the next time it starts to execute, in idle, lightly loaded and heavily loaded machines.

      The argument for a purely forward-looking scheduler that doesn't implement any heuristics is that the maximum latency is a function of the number of tasks running, their priorities, the priority of the current task and whether the task is waking from sleep or has been descheduled due to having used its timeslice. This means that maximum latency is bound (and usually low), resulting in execution that feels snappy (low latency) and smooth (no great variations in latency). A heuristic-using scheduler, on the other hand, can easily end up in a situation where a task is unexpectedly scheduled a lot later than it would in a nonheuristic scheduler; in other words, while the average latency can be low, the maximum is unbound (or at least the bound is very high). These unexpected seemingly random huge latencies (latency variation, to be exact) are what's perceived as "jerky" behaviour, or so the theory goes anyway.

      I agree that we need actual objective data to base decisions on. Does the kernel currently have capability of measuring these things (time when a task starts executing, time when a task stops executing and the reason for it, and a time when a task becomes eligible for execution and the reason for it) and if not, could one be added?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    57. Re:Glory! by Haley's+Comet · · Score: 1

      So what you are saying is that my mouse cursor didn't freeze? You are saying that my text input didn't stop, just to jump 3 words into what I typed?

      Not bias here, this is measurable - if they know what to measure. My system only gained this "feature" around 2.6.18 or so... (updated from 2.6.8 to 2.6.18)

      When I am encoding a video in handbrake, konqueror get's all non-responsive regardless of "nice" configuration. The mouse will jump around like I'm running win 3.1 again. You want numbers, start measuring the mouse jumps per day on a single core system. Start counting the video glitches from using vlc or mplayer while burning a CD or DVD. A 2.4GHz/1GB RAM system is supposed to be fast enough to do that without those errors, right?

      My conclusion: Scientifically speaking, if you don't have the numbers you are measuring the wrong thing. I am not a coder, I just script or I would get it done (find the numbers).

      --
      The Illuminati would kill me, but I'm not rich enough to take notice of.
    58. Re:Glory! by X0563511 · · Score: 1

      Replace "murdered his wife" with "cardiac arrest" or "auto accident" - anyone can go at any time.

      The problem is relying on things that only one person knows well enough to carry on, when the subject is esoteric enough that someone couldn't be brought up to speed without the original coder being around.

      --
      For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
    59. Re:Glory! by smash · · Score: 1

      Scheduling is actually a major difference i noticed between FreeBSD and Linux on the desktop actually. FreeBSD seems FAR more tolerant of heavy load not fucking things up and causing jerkiness, slow UI response, etc. Haven't used either OS on the desktop for some time now (a year or so), but "responsiveness under load" was a major reason I starting getting more interested in FreeBSD in the first place, way back in 1999...

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    60. Re:Glory! by Chrisq · · Score: 2, Informative

      That's not two schedulers, it's just some tunables. See pages 391 to 444 of Windows Internals, 5th Edition (or comparable pages in earlier editions).

      I'd mod you informative, given that this is Linus's preferred option this is an important distinction

    61. Re:Glory! by Lennie · · Score: 1

      That's why he put money away in a fund to fund Ubuntu.

      --
      New things are always on the horizon
    62. Re:Glory! by mikechant · · Score: 1

      Instant response is *always*, *always* more important than all other tasks.

      No. Not *always*. Although it shouldn't be an issue much these days (large buffers etc.), CD/DVD burning needs to take priority over instant response if the alternative is risking a bad burn. There are other examples like realtime sound/video recording which may glitch if not given the highest priority.

    63. Re:Glory! by Anonymous Coward · · Score: 0

      Unresponsiveness is just the tip of the iceberg.
      I was booting up my machine at work the other day. I was late. The Windows "welcome sound" started playing, so I pressed this little mute button on my keyboard. Nothing. No mute.

      Yet, the sound was being played. A 2 channel, 16 bit, 44k hrz wav file was being sent to the sound card, the computer had the resources to send millions of bytes to the sound card, yet it ignored my SINGLE INTERRUPTION altogether. The thing finished booting like 5 mins later. The mute button finally worked.

      This would happen in any operating system today.

    64. Re:Glory! by Anonymous Coward · · Score: 0

      No, this is actually bullshit from Con. To start with, CFS and RDSL are completely different.

      What Con was talking about Ingo stealing was the notion of "fair schedulers". If you think about it for half a second, fair schedulers aren't a new concept, in fact you'd think an unfair scheduler would be stupid.

      But in fact, Con and Ingo both were praising the "unfairness" of the initial 2.6 scheduler (the O(1) scheduler) way back when the first round of alternate schedulers and scheduler interactivity work came around. Nick Piggin had another design which supposedly had fairness as a primary design goal (I can't remember what the scheduler was called), and that's what they were arguing against.

      Con in fact seemed to get very bitter and bitchy about Nick's scheduler too, so it is funny that he later turned around and claimed he "invented" some new concept with a fair scheduler.

    65. Re:Glory! by Blakey+Rat · · Score: 1

      Oh please. CD burners all have huge buffers now. Where do you even buy one with a small enough buffer that this is an issue? Your argument is from 2002. Please update to a 2009 argument and come back, ok?

    66. Re:Glory! by smash · · Score: 1

      Thats why linux is beating windows NT/2k/XP everywhere (which is a microkernel).

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    67. Re:Glory! by Anonymous Coward · · Score: 0

      Like Reiser4, right?

    68. Re:Glory! by mvdwege · · Score: 1

      The plural of 'anecdote' is not 'data'.

      Mart

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
  4. *sniff* by s4m7 · · Score: 4, Funny

    I smell another LKML flamewar coming....

    --
    This comment is fully compliant with RFC 527.
    1. Re:*sniff* by tpgp · · Score: 3, Funny

      I smell another LKML flamewar coming....

      A flamewar on the LKML? Pfffffffffffft. Impossible. Never happened, never will happen.

      --
      My pics.
  5. Uh... I don't see it included soon... by imbaczek · · Score: 0

    What is it?

    BFS is the Brain Fuck Scheduler.

    yeah...

  6. I tripped over this by Anonymous Coward · · Score: 0

    I tripped over his site about 4 days ago, so this is old news to me (well 4 days old anyway). I didn't try adding his code to the kernel and doing a compile (I'm running Linux Freedom 2.6.31-rc8-git2 #1 SMP Fri Sep 4 19:22:35 MDT 2009 x86_64 GNU/Linux built with gcc version 4.4.1 (4.4.1) on Ubuntu 9.04) on a corei7-920. I might give it a try though. I also found out what BFS stood for. I might give it a try anyway.

    1. Re:I tripped over this by PotatoFiend · · Score: 1

      Cool story bro.

      --
      "Liberty may be endangered by the abuses of liberty as well as the abuses of power." -- James Madison
  7. Linux on the Desktop/Linux on the Server by erroneus · · Score: 2, Insightful

    Clearly, Desktop Linux and Server Linux have some things in common, but they also have different needs. I'm not intimately familiar with any kernel programming but I do have some basic understanding of how it all works and even I find it relatively easy to understand that the needs of a good and snappy desktop and those of reliable server are going to have some differences.

    I think it is beyond time that some sort of kernel operating mode optimizations are enabled like this scheduler thing for desktop even if the defaults are for server.

    1. Re:Linux on the Desktop/Linux on the Server by Hurricane78 · · Score: 1

      I'm really wondering where that either/or comes from... I mean they are like children "I want this!" "No, I want THAT!".

      Put in a configure option like grown-ups, and like any other real developer, and be done with it!

      Power really corrupts. And actually, I have this configure option in my kernel, because of some nice guy -- that is none of those whiners -- is doing a high performance patchset. I did not even know that others have no choice.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    2. Re:Linux on the Desktop/Linux on the Server by Kjella · · Score: 1

      Put in a configure option like grown-ups, and like any other real developer, and be done with it!

      Even in a kernel there are many things that aren't performance sensitive, but the scheduler is not one of them. From what I understood from the kernel discussion last time, this would probably have to be #ifdefs galore. It's also not just the algorithm itself, everything that collects data for the scheduler to use also costs cycles. After all this runs 1000 times a second, it has to be as lightweight as possible.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Linux on the Desktop/Linux on the Server by TheRaven64 · · Score: 4, Interesting

      From what I understood from the kernel discussion last time, this would probably have to be #ifdefs galore.

      No, it really wouldn't. Take a look at how Xen and FreeBSD implement pluggable schedulers. Each scheduler in Xen is identified by a struct which contains pointers to its state and all of the functions related to actions the scheduler needs to take. These are called from the rest of the code (most commonly the timer interrupt handler). The total extra cost is one extra load instruction per call, which is tiny compared to the amount of work that the scheduler does. In FreeBSD, it's even simpler. The functions that implement the scheduler are declared in a header and implemented once in each scheduler's .c file(s). At compile time, you simply compile in the scheduler you want. Total run time cost is zero. FreeBSD cares about stability, so they've retained the old 4BSD scheduler all through the transition to the ULE scheduler (which, by the way, was outperforming the CFS in the last set of benchmarks I saw, although not by as large a margin as it outperformed the old Linux scheduler). This allows people operating servers that would rather sacrifice a little performance than use relatively new code to select the old one. Xen is designed for a variety of workloads, and so it has several schedulers that you can choose between.

      Of course, these are only possible if the interface between the scheduler and the rest of the kernel is clean already. If it isn't, however, then you almost certainly have bigger problems than not being able to choose between two schedulers.

      --
      I am TheRaven on Soylent News
    4. Re:Linux on the Desktop/Linux on the Server by Zero__Kelvin · · Score: 1

      "Power really corrupts. And actually, I have this configure option in my kernel, because of some nice guy -- that is none of those whiners -- is doing a high performance patchset. I did not even know that others have no choice."

      You didn't know, because it is blatantly false. Linus' mainline tree has had the option to choose from multiple schedulers at compile time for as long as I can remember. This thread is chock full of people making absurd and untrue claims about the kernel ... :-(

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    5. Re:Linux on the Desktop/Linux on the Server by kigrwik · · Score: 1

      " a struct which contains pointers to its state and all of the functions related to actions the scheduler needs to take."

      Hmmm. Looks like the usual implementation of polymorphism common to mere mortals coding in object-oriented languages (like C++ and vtables).

      Or is there something more to it ?

      --
      -- don't discount flying pigs until you have good air defense
    6. Re:Linux on the Desktop/Linux on the Server by Bootarn · · Score: 1

      A "mere mortal" coding in C++ would probably write a scheduler class instead. Having pointers to functions is an excellent idea, since it allows for an instantaneous jump to the requested scheduler function.

    7. Re:Linux on the Desktop/Linux on the Server by sowth · · Score: 1

      The Linux kernel has had such options for a while. Really, you have three cases to optimize: server, desktop, and laptop. Laptop needs extra consideration for power savings, otherwise the battery doesn't last long.

      You choose these options when compiling the kernel. Under Processor type and features, look for Preemption Model and Timer frequency. I set my freq to 300Hz because it is a multiple of most video framerates, which makes video look less jerky.

      The tickless system option helps save power on laptops. I think there are more settings, but I can't remember them. Hopefully, your distro has done this for you, but I wouldn't count on it unless it is desktop only, or has separate kernels for server and desktop configs. I don't think any distros do this...

  8. Cool, but what does that spec mean? by Anonymous Coward · · Score: 0, Funny

    While I think it's great for Linux to have more choice in schedulers, I don't understand Con's spec at all:

    BFS 'was designed to be forward looking only, make the most of lower spec machines, and not scale to massive hardware

    Hang on there, something's not right with that logic:

    1) If you're forward looking, how can you not scale beyond 16 cores? We're already at 8 cores on home boxes.

    2) And if you're forward looking only, then how come that you're looking backwards at lower spec machines?

    Whoever wrote that piece just produced a sound bite that's logically meaningless.

    1. Re:Cool, but what does that spec mean? by Effugas · · Score: 1

      Uh, a few machines have eight cores. Core2Duo is doing OK, but really, the heat problem is not actually going away in any way shape or form.

    2. Re:Cool, but what does that spec mean? by Trepidity · · Score: 5, Informative

      He means something different by it--- that the scheduler should only look forward, not look back to per-process history in making its scheduling decisions. A common hack/heuristic to improve interactive performance is to boost the priority of processes that sleep a lot, since CPU-bound jobs sleep rarely, while interactive processes sleep a lot. Kolivas think that's a hack that obscures the real problems with interactive performance, and leads to unpredictable performance since it doesn't fix the underlying issues. So wants to design schedulers with good interactive performance that make decisions based purely on the current set of running processes and priorities, and the upcoming timeslices.

    3. Re:Cool, but what does that spec mean? by amn108 · · Score: 1

      I think he means "forward looking" in the sense that scheduler does not collect samples from anything that already happened, it only makes decisions on what happens immediately after.

    4. Re:Cool, but what does that spec mean? by setagllib · · Score: 0

      It's a scheduler term, not a hardware requirement strategy. Leave the tech to the people who know (certainly not me, but Con is epic).

      --
      Sam ty sig.
    5. Re:Cool, but what does that spec mean? by Anonymous Coward · · Score: 0

      This makes sense to me. Why would you have to do anything fancy? If a process has been blocked, it should automatically get scheduled sooner than a non-blocking process due to fairness.

    6. Re:Cool, but what does that spec mean? by fruitbane · · Score: 1

      I suspect the "forward looking" bit was referring to scheduling behavior, actually. That's what I took away.

  9. BFS is the Brain Fuck Scheduler. by Errol+backfiring · · Score: 0, Redundant

    Finally a worthy brainfuck program! ++!
    (See http://en.wikipedia.org/wiki/Brainfuck)

    --
    Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
  10. O SNAP! by uwnav · · Score: 0, Offtopic
    oh no he didn't! HE CAME BACK!?!

    He's like the Brett Favre of linux kernel schedulers!

    hmm.. wrong place to use football reference?
    who am I kidding.. I don't watch football

  11. forward looking by Trepidity · · Score: 5, Informative

    Took me a while to figure out what "forward looking" means in this context, since "forward-looking scheduler" doesn't seem to be common terminology, and I assumed he wasn't talking about his grand forward-looking vision for schedulerdom.

    Based on some previous arguments he's had, it sounds like he opposes the common heuristic of upping interactive process priority by keeping track of how long processes sleep--- processes that sleep a lot are probably I/O bound, and should get a priority boost so they can run on the (less frequent than for CPU-bound processes) occasions when they're ready. Kolivas wants schedulers to be forward-looking in the sense that they decide how to schedule without looking at process run history, by looking purely at who's ready to run, available timeslices, priorities, etc.

    1. Re:forward looking by drinkypoo · · Score: 0

      IANAKernel Developer but I predict right now that as in all other things the correct approach will be to look at past, present, and future. That is the only hope of fulfilling Linus' dream of having a single scheduler which serves all users. What process is doing what right now, what did they do last, what are they likely to do next. Today becomes tomorrow, starting from yesterday.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:forward looking by SpinyNorman · · Score: 1

      Having a single scheduler (and set of tuning parameteres) doesn't necessarily makes sense. It's like saying that rather than having an F-1 car when you're racing, a minivan for bringing kids to parties, and a Hummer for off-road use, you'd prefer a one-size fits all vehicle so that you didn't have to choose. Unfortunately the design compromises that go into an off-road vehicle arn't the same as the ones that go into an F-1 car, anymore than the scheduling needs of a server (thruput) are the same as those of an interactive-use desktop machine (latency).

      For myself I'd prefer an install/config option of "Optimize for server/desktop use" so that for desktop use I'm not doing the equivalent of trying to compete in a formula 1 race in a Hummer or minivan.

    3. Re:forward looking by tajribah · · Score: 1

      This could work if the load of your machine is of a single type only. However, many people tend to use their workstations for both interactive desktop programs and lots of number crunching on the background. Therefore they need a scheduler which performs well on both "server" and "desktop" style load at the same moment.

    4. Re:forward looking by Anpheus · · Score: 1

      And it does get even worse, you have to remember there are smartphones and embedded chips running Linux, and there are very large many-many core machines running it as well. Intel recently demonstrated a 128 core computer using 16 of their new Nehalem-EX chips. With hyperthreading, Windows Server or Linux would show 256 CPU graphs.

      Clearly my phone should not run the same scheduler my desktop does, and my desktop has different needs than a middle of the road server, and that server's needs may differ enormously from the needs of that 128 core monster.

      Again, this is just adding emphasis to the argument that pluggable schedulers are a Good Thing(TM).

    5. Re:forward looking by drinkypoo · · Score: 1

      Let's not forget that many embedded uses are single-process. A lot of the kernel can be carved away (and there are options for doing so, it's not even hard any more) and scheduling becomes less burdensome. It's not that I can't appreciate the benefit to having pluggable schedulers, because it is obvious. But in the end I suspect that it is possible to get away with maybe two schedulers, a super-minimal scheduler for the lightest of systems, and another one that is mostly self-tuning, and also manually tunable, which can handle light loads like you'd see on netbooks or PDAs, medium loads like you'd see running common desktop applications, heavy-lifting I/O monster tasks, and everything in between.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:forward looking by QuoteMstr · · Score: 1

      That's a misguided attitude. The fewer knobs a system has, the better. We should make systems auto-tuning whereever possible. A scheduler should be able to detect the kind of workload it is being used for and adjust itself accordingly. In fact, that's exactly what CFS does.

    7. Re:forward looking by Anonymous Coward · · Score: 0

      Clearly my phone should not run the same scheduler my desktop does, and my desktop has different needs than a middle of the road server, and that server's needs may differ enormously from the needs of that 128 core monster.

      Clearly, you say? I beg to differ. The correct word, in my opinion, would be Maybe. Of course, the choice of word here depends on exactly how arrogant one is, and maybe, just maybe, how much experience one has in the design of actual, working and proven scheduler code.

      Are you qualified to use the word Clearly as you did above? I know I'm not.

    8. Re:forward looking by Anpheus · · Score: 1

      Ok, rather than delve into SMP, NUMA, and cache sizes, just from one point of view there is a huge difference between various environments. In a phone and a desktop, you want latency reduced as much as possible on any foreground operation. In a similar way, a cluster of lightweight webservers would want to minimize average latency to respond to requests.

      On the other hand, a database server, virtual machine server handling a variety of workloads, a beefy dual processor workstation, etc, are all going to have different needs.

      At least in the Microsoft camp, I'm fairly sure different schedulers are used for the desktop, server, and cluster areas.

      IMO, if Linux wants to have its year, it needs to accept that when I come home and take off my IT admin/programmer/developer cap and put on my home user/web browser/video game playing cap, I have different needs. I want different things from my OS.

  12. You're welcome! by dvh.tosomja · · Score: 0

    I for one, welcome our new Bloody Fucking Scheduler overlords!

  13. Once the article gets slashdotted, text here by Anonymous Coward · · Score: 0

    The content of http://ck.kolivas.org/patches/bfs/bfs-faq.txt below, geeks wanna know

    FAQS about BFS. v0.209

    Why did I write it?

    After years of using my old kernel and numerous hardware upgrades, I finally
    had hardware that needed a newer kernel for drivers and to try out the newer
    filesystems. Booting the mainline kernel was relatively reassuring in that
    the scheduler behaviour was much better than what was in earlier kernels.
    However, it didn't take long before I started being disappointed in that too.
    Random stalls in mouse movements, keypresses, strange cpu distribution in
    various workloads and unpredictable behaviour all around were exactly what I
    was hoping had gone away. So I did what I vowed never to do, looked at the
    code. After seeing it had grown into a monster of epic proportions I sat down
    and thought about what was wrong. One of the key features of fairness and
    interactivity that I always argued for were very simple semantics for how
    cpu should be distributed, with guaranteed low latencies so that interactivity
    was assured by design instead of bolted on. CFS in essence does that, but it
    does something else too. It varies timeslice length to try and preserve some
    deadline list and it determines cpu distribution based on a run/sleep
    relationship. It also is designed to scale to monster proportion hardware
    that the common man will never see. The whole sleep calculation thing is
    exactly what I found was responsible for making varied behaviour under
    different loads and relative starvation and unfairness. It's not a profound
    effect in CFS and that's admirable. It just doesn't behave the way I feel
    the scheduler should being forward looking only (not calculating sleep) and
    it doesn't really make the most of a relatively lightly loaded machine without
    many many cpus. So I threw it all out and wrote exactly the opposite.

    What is it?

    BFS is the Brain Fuck Scheduler. It was designed to be forward looking only,
    make the most of lower spec machines, and not scale to massive hardware. ie
    it is a desktop orientated scheduler, with extremely low latencies for
    excellent interactivity by design rather than "calculated", with rigid
    fairness, nice priority distribution and extreme scalability within normal
    load levels.

    Extreme scalability within normal load levels? Isn't that a contradiction?

    For years we've been doing our workloads on linux to have more work than we
    had CPUs because we thought that the "jobservers" were limited in their
    ability to utilise the CPUs effectively (so we did make -j6 or more on a
    quad core machine for example). This scheduler proves that the jobservers
    weren't at fault at all, because make -j4 on a quad core machine with BFS
    is faster than *any* choice of job numbers on CFS. See reverse scalability
    graph courtesy of Serge Belyshev showing various job numbers on a kernel build
    on a quad core machine. The problem has always been that the mainline
    scheduler can't keep the CPUs busy enough; ie it doesn't make the most of
    your hardware in the most common situations on a desktop! Note that the
    reverse scalability graph is old; the scalability has improved since then.

    Why "Brain Fuck"?

    Because it throws out everything about what we know is good about how to
    design a modern scheduler in scalability.
    Because it's so ridiculously simple.
    Because it performs so ridiculously well on what it's good at despite being
    that simple.
    Because it's designed in such a way that mainline would never be interested
    in adopting it, which is how I like it.
    Because it will make people sit up and take notice of where the problems are
    in the current design.
    Because it throws out the philosophy that one scheduler fits all and shows
    that you can do a -lot- better with a scheduler designed for a particular
    purpose. I don't want to use a steamroller to crack nuts.
    Because i

    1. Re:Once the article gets slashdotted, text here by VGPowerlord · · Score: 1

      He seems to have forgotten one last thing in the 'Why "Brain Fuck"?' section:

      Because I don't want it to ever be included in mainline.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:Once the article gets slashdotted, text here by phoenix_rizzen · · Score: 1

      Nope, it's in there:

      Because it's designed in such a way that mainline would never be interested
      in adopting it, which is how I like it.

  14. Welcome back Kolivas by BlackSabbath · · Score: 2, Funny

    Haven't run Linux as my personal OS since 2003 but I had a lot of time (pun intended) for CK's schedulers. Now a whole new generation of youngsters can finally learn what a _REAL_ LKML flamewar looks like ;-)

  15. What about FreeBSD? by Anonymous Coward · · Score: 0

    I always get a much smoother and more responsive X experience on FreeBSD. An extreme example: years ago I could run FreeBSD in vmware (headless, connect with a native X term ie WinX32) just like a native machine while Redhat is slow like a snail. Is this because FreeBSD is genuinely fast?

    1. Re:What about FreeBSD? by MichaelSmith · · Score: 1

      Don't know about freebsd but I have had many linux systems lock up with a runaway process. Never happened to me on netbsd.

    2. Re:What about FreeBSD? by markdavis · · Score: 2, Informative

      Almost all runaway processes are due to bugs in the end applications, not some situation created by the kernel.

    3. Re:What about FreeBSD? by Anonymous Coward · · Score: 0

      NOTHING a userland application does should cause system lockup. Such situation is always kernel bug.

    4. Re:What about FreeBSD? by Anonymous Coward · · Score: 0

      The BSD is dead. It's all because of their gay license.

    5. Re:What about FreeBSD? by Anonymous Coward · · Score: 0

      Teh BSD is dead. It's all because of their gay license.

      Fixed that for you.

    6. Re:What about FreeBSD? by Anonymous Coward · · Score: 0

      And yet, it is the responsibility of the kernel to prevent runaway processes from causing a lockup.

    7. Re:What about FreeBSD? by markdavis · · Score: 1

      That is simply not possible nor practical. A runaway process does not cause a "lockup", it just eats up endless CPU. If you have a busy loop in a program, wham, you have a runaway. The kernel doesn't know a defective busy loop from real number crunching.

  16. i.e. vs e.g. by Troed · · Score: 0, Offtopic

    "i.e." should be used after a statement to explain it another way

    Remove the [sic]

    http://askville.amazon.com/define-correct-usage/AnswerViewer.do?requestId=5300847

    1. Re:i.e. vs e.g. by Anonymous Coward · · Score: 0

      The submitter most likely has English or American as his/her first language and thus can't speak, write, or read it properly, i.e. forgiveness is in order :D

    2. Re:i.e. vs e.g. by Anonymous Coward · · Score: 0

      i.e., cannot be used where the word "therefore" is needed. i.e. is probably best used where you would otherwise put the phrase "that is to say..." or "in other words..."

    3. Re:i.e. vs e.g. by Anonymous Coward · · Score: 0

      Its use in the summary quote is correct, except for capitalization. (The original text is "ie it is..." though. That makes the "[sic]" extra annoying.)

      Your explanation does not contradict the use of "i.e." in that sentence. It is not "therefore" a desktop scheduler. It does not scale to massive hardware. In other words, it is a desktop scheduler.

    4. Re:i.e. vs e.g. by Hal_Porter · · Score: 1

      I.e = id est = that is.
      E.g. = exempli gratia = for example.
      [sic] = this = when quoting an error.

      And yes, i.e. was used correctly so no [sic] should be needed. Then again the editor probably just put it in to catch pedants.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    5. Re:i.e. vs e.g. by myvirtualid · · Score: 0, Offtopic

      Remove the [sic]

      See my previous comment: Since the immediately preceding token was a period, the previous statement was contained in a completed sentence. Conventionally, this requires that the first character of the next statement be capitalized, hence the need to write either "hardware, i.e." or "hardware. I.e.". Either choice would have removed the need for the sic.

      --
      I'm here EdgeKeep Inc.
    6. Re:i.e. vs e.g. by quickOnTheUptake · · Score: 0, Offtopic

      sic = 'thus' in the sense of "in this/that way"
      [sic] = "I meant to write it as it appears; it's not a typo."
      Interestingly 'sic' would commonly be used in Latin to answer a question affirmatively (i.e., to say 'yes'), meaning just "in that way" or "[it is] as you said". Thus the form 'si' that is found in Romance languages.

      --
      Mod points: Guaranteed to remove your sense of humor.
      Side effects may include gullibility and temporary retardation
    7. Re:i.e. vs e.g. by neumayr · · Score: 1

      I guess I'm being dense, but even after years of roaming through the internets, I have yet to figure out what this [sic] is supposed to mean..

      --
      Truth arises more readily from error than from confusion. -Francis Bacon
    8. Re:i.e. vs e.g. by Troed · · Score: 1

      Type "define sic" into the nearest google search box.

  17. 4096 cpu machines by boldie · · Score: 4, Interesting

    Still some grudge towards Torvalds and Molnar? From the FAQ:
    Are you looking at getting this into mainline?
    LOL.

    No really, are you?
    LOL.

    Really really, are you?

    No. They would be crazy to use this scheduler anyway since it won't scale to their 4096 cpu machines. The only way is to rewrite it to work that way, or to have more than one scheduler in the kernel. I don't want to do the former, and mainline doesn't want to do the latter. Besides, apparently I'm a bad maintainer, which makes sense since for some reason I seem to want to have a career, a life, raise a family with kids and have hobbies, all of which have nothing to do with linux.


    Reminds me of this XKCD.

    I don't have 4096 CPUs, good job Con Kolivas!

    1. Re:4096 cpu machines by Anonymous Coward · · Score: 0

      Reminds you of it? Look at the bottom. He actually credits that particular comic.

      I like the idea. It may be a fun experiment, and even if it isn't mainline, this could be something that, in time, downstream distros might experiment with (I'm looking at you, Ubuntu Desktop).

    2. Re:4096 cpu machines by boldie · · Score: 1

      Haha, there it is! Did'nt read the whole linked article. I'm hoping for it to appear in downstream too.

    3. Re:4096 cpu machines by amn108 · · Score: 2, Interesting

      Well who knows, maybe instead of the elusive year of Linux on desktop, we should be expecting and applauding years of downstream personal automated-installing GNU/Linux distributions like LFS or diy-linux, which will let users to choose schedulers and what not. Not exactly something I expect to happen soon, but my feeling is GNU/Linux is being institutionalized. It is like if the trust is just not there to anything but the mainline. People assume that the majority is right here - that the maintainers of mainline kernel know best - and every other hacker in minority like Con, is just experimenting. What if we can distribute this trust better - use "non-standard" schedulers etc - then the benchmarking will reach the users and the truth will be distilled eventually. If Cons new scheduler is as good as he tries to paint it, build kernel and use it in thousands. Currently, all eyes are on mainline, which is what prevents choice, even though the choice is "potentially" there.

    4. Re:4096 cpu machines by HyperQuantum · · Score: 1

      Reminds me of this XKCD.

      From the FAQ:

      The xkcd comic supported_features also helped motivate this work.

      --
      I am not really here right now.
    5. Re:4096 cpu machines by ultranova · · Score: 1

      What if we can distribute this trust better - use "non-standard" schedulers etc - then the benchmarking will reach the users and the truth will be distilled eventually. If Cons new scheduler is as good as he tries to paint it, build kernel and use it in thousands. Currently, all eyes are on mainline, which is what prevents choice, even though the choice is "potentially" there.

      Unfortunately, the internal interfaces of Linux kernel are constantly being modified, so maintaining an "alternative" kernel has a huge overhead. You either miss out on updates to the mainline kernel, or keep on changing your patches to keep them compatible with it.

      The more cynical part of me wonders if Linus is doing that on purpose, to reduce competition? Make it a pain to maintain a forked kernel, and people will improve mainline. Of course that also means that desktop users are stuck with data center optimizations, but it also keeps them from having good alternatives, so Linux usage will keep on growing.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    6. Re:4096 cpu machines by petrus4 · · Score: 2

      Still some grudge towards Torvalds and Molnar? From the FAQ:

      Apparently Linus genuinely is growing a little more prickly in his old age. While he's still got a fair way to go to equal Theo, he apparently does have a tendency to snap and snarl at people, on occasion. You might want to look up how he treated Alan Cox in relation to the tty code in the kernel, as well.

    7. Re:4096 cpu machines by antimatter15 · · Score: 2, Insightful

      Last part: Thanks to the guys in irc.oftc.net #ck for inspiration to work on this and early testing! Many of them sat idle in that channel for years while nothing happened. The xkcd comic supported_features also helped motivate this work. Yes I know you probably still can't watch full screen videos on youtube, but that's not entirely the scheduler's fault.

    8. Re:4096 cpu machines by TheRaven64 · · Score: 4, Insightful

      Having read flames from both Theo and Linus, it's difficult to make a fair comparison. Linus is a bit more gentle than Theo, but he is much more likely to be wrong when he flames someone. Neither of them is any good at admitting when they are wrong, but Linus has had a lot more practice at being wrong and not admitting it.

      --
      I am TheRaven on Soylent News
    9. Re:4096 cpu machines by Anonymous Coward · · Score: 0

      could you please provide an example?

    10. Re:4096 cpu machines by SL+Baur · · Score: 2, Informative

      If Cons new scheduler is as good as he tries to paint it, build kernel and use it in thousands.

      Ingo did some benchmarking. The following landed in my lkml mailbox about an hour ago:

      hi Con,

      I've read your BFS announcement/FAQ with great interest: ...

      As can be seen in the graph BFS performed very poorly in this test:
      at 8 pairs of tasks it had a runtime of 45.42 seconds - while
      sched-devel finished them in 3.8 seconds.

      I saw really bad interactivity in the BFS test here - the system
      was starved for as long as the test ran. I stopped the tests at 8
      loops - the system was unusable and i was getting IO timeouts due
      to the scheduling lag:

        sd 0:0:0:0: [sda] Unhandled error code
        sd 0:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT
        end_request: I/O error, dev sda, sector 81949243
        Aborting journal on device sda2.
        ext3_abort called.
        EXT3-fs error (device sda2): ext3_journal_start_sb: Detected aborted journal
        Remounting filesystem read-only

      I measured interactivity during this test:

          $ time ssh aldebaran /bin/true
          real 2m17.968s
          user 0m0.009s
          sys 0m0.003s

      A single command took more than 2 minutes. ...

      (Lots of text elided) Apparently he did a lot of benchmarking and BFS didn't fare very well. Ah well.

      I hope this time Con takes him on. Competition Is Good and concentration on desktop interactivity is certainly high on my wishlist of desired optimizations.

    11. Re:4096 cpu machines by SL+Baur · · Score: 2, Interesting

      You might want to look up how he treated Alan Cox in relation to the tty code in the kernel, as well.

      I followed that. Linus wasn't wrong about anything and Alan was acting a tad obtuse. 2.6.32 has been delayed another week to pick another louse out of the pty code.

      There was more going on than was posted on lkml. Alan has always called Linus "pinhead" and gotten away with it.

      Although he has an abrasive personality with developers at times, Linus is pretty good with testers. He was very patient with me in the 1.3 cycle (including sending me patches to test) as I was debugging what would ultimately prove to be a bad cache chip.

      If that makes me a Linus fan boy, whatever. I'm amazed at what he's managed to accomplish. And for all of his "snapping and snarling" I've faced far worse from managers at work with no proven technical skills whatsoever.

    12. Re:4096 cpu machines by Andrew+Cady · · Score: 1

      The more cynical part of me wonders if Linus is doing that on purpose, to reduce competition? Make it a pain to maintain a forked kernel, and people will improve mainline. Of course that also means that desktop users are stuck with data center optimizations, but it also keeps them from having good alternatives, so Linux usage will keep on growing.

      Well, but isn't it the case that almost nobody who uses Linux uses Linus's kernel? I mean for example all the people who use Ubuntu, Debian, Fedora, etc. distributions, which have their kernel patch sets. In fact what happens is that incompatibilities with such patches only slow adoption by these distributions (and thus by the vast majority of users) of the newer kernel releases from Linus. If Linus has such a plan as you describe, it does not work.

    13. Re:4096 cpu machines by petrus4 · · Score: 1

      There was more going on than was posted on lkml. Alan has always called Linus "pinhead" and gotten away with it.

      Well yes, that would start to annoy me too pretty quickly, I'm guessing.

      If that makes me a Linus fan boy, whatever. I'm amazed at what he's managed to accomplish.

      No, it doesn't necessarily; or I'm not going to call you one, anywayz. Truthfully I tend to think that he is probably under a lot of stress most of the time myself, as well.

      I possibly wasn't meaning to attack him quite as strongly as it initially appeared, and I apologise if so. I just worry that, if he is sometimes a little irate with someone because he's having a bad day or whatever, the kernel could suffer from potentially missing out on something beneficial, is all.

    14. Re:4096 cpu machines by amn108 · · Score: 1

      Useful read, thanks. I should subscribe to lkml, after all these.

      Well, as with any algorithm implementations, a good question would be - does BFS fail by design or by implementation? If "brain fuck" strategy just does not work, then it does not work, and Con will have to move on. If, however, it is a genuine step forward as far as user-centric schedulers go, but needs "debug, rinse, repeat" workflow on Mr. Kolivas' part due it being in "alpha" stage, then as you say, I also hope Con takes Ingo on. Certainly, if Con saw some improvements on some scenarios, the scheduler has to be worth something.

  18. Re:Linux gets Yet Another Scheduler by tpgp · · Score: 2, Interesting

    I've yet to be impressed by any of them, for any use, with any hardware.

    I've yet to be impressed by your comment, which contains no reason for your opinion.

    Care to give us some examples of your uses & hardware?

    --
    My pics.
  19. Re:Linux gets Yet Another Scheduler by Anonymous Coward · · Score: 0

    Linux has been playing musical schedulers for years now.

    "playing musical schedulers", WTF does that even mean? Maybe give examples of those and problems you achieved? Insightful my ass, but yeah /. sucks

  20. He ain't kidding. by Ant+P. · · Score: 4, Insightful

    CFS can't even cope with a CPU-bound application.

    Who here runs Linux on anything with more than 16 cores? Why should everyone else get the shitty end of the stick just because of maybe a dozen institutes with deep pockets?

    1. Re:He ain't kidding. by dbIII · · Score: 2, Interesting

      I don't know about you, but I run 8 CPU linux cluster nodes at 100% on all CPUs for weeks at a time and I'm only at the very bottom end of "high performance computing". For about two minutes in total a day the nodes are dumping things to disk (snapshots) and are I/O bound. The rest of the time they are pegged at 100% until the job finishes (which takes days to weeks - geophysical stuff). There are several applications that behave this way on these nodes, but there are some that sit waiting doing nothing because they are badly written. That means I think your above statement is a strongly misleading pile of steaming rubbish.

    2. Re:He ain't kidding. by markdavis · · Score: 2, Insightful

      >Who here runs Linux on anything with more than 16 cores?

      Along the same lines... Who here runs their Linux *servers* with 16 or *less* cores? Probably 99.9%?

      And "server" doesn't really mean anything. At work, we use Linux thin clients, so the Linux "server" is really dealing with 150 desktops, except not managing X/kb/mouse. So should it be treated like a "server" or a "desktop" for scheduling?

    3. Re:He ain't kidding. by Anonymous Coward · · Score: 0

      With dual-core netbooks on the horizon, and desktops with 4 hyper-threading cores available which appear as 8 cores to a scheduler, it's only another couple of years until the high-end PC market goes past 16 cores. If software evolves enough to make use of this extra processing capability we'll carry on into stupid numbers.

    4. Re:He ain't kidding. by delirium+of+disorder · · Score: 1

      Who here runs Linux on anything with more than 16 cores?

      My personal server. A debian based distro of Gnu/Linux is much easier for me to admin than Solaris. Massively multicore is the future. I wouldn't buy any new computer with less than 16 cores/hardware threads. Well, except for laptops and embedded systems.

      --
      ------ Take away the right to say fuck and you take away the right to say fuck the government.
    5. Re:He ain't kidding. by A+beautiful+mind · · Score: 1

      CFS can't even cope with a CPU-bound application.

      Note that the thread you linked to compared schedulers based on per process CPU "usage" levels (90-95% vs 100%). Those numbers are not accurate representations of anything close for evaluating scheduling algorithms. There are many reasons for that, but let me just say that the number given there depends upon sampling and can be wildly inaccurate.

      If they really wanted to test CPU gains from scheduling efficiency, they should have tested the difference in time between a specific work unit when using different schedulers, eliminating the need to rely on an indirect and inaccurate sampling method and measuring what's important: work done in a given amount of time.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    6. Re:He ain't kidding. by bollucks · · Score: 1

      Read the posts. He may have been saying that it "can't cope" and used the % of cpu argument, but he also found that it shortened the time taken to complete his workload. quote: Frame time reduced by 2 mins on my O/C'd 3.8Ghz i7 920 (-bigadv -smp 8) with the bfs scheduler.
      I don't know how long the workload normally takes so it doesn't really say what percentage improvement that is, but it is exactly what you asked for. It's also interesting to note that this is on an 8 (logical) CPU machine.

    7. Re:He ain't kidding. by gbjbaanb · · Score: 4, Insightful

      I think what you want is not a single scheduler designed for the desktop, but one designed for server processes. That's probably the whole argument here - there isn't a single scheduler that can work efficiently for the 2 wildly different types of work a user put a machine to, but currently you don't have a choice. This is all about giving users choice of what kind of scheduler they'd like to run. You might even find that a scheduler designed for lots of CPUs (at the expense of interactivity probably) would suit you much more than the current system, especially when you buy more cores.

    8. Re:He ain't kidding. by TheRaven64 · · Score: 2, Interesting

      And how does Linux handle the T2? The chip has some incredibly complex scheduling constraints; for good performance you need to track both the cycle counter and the wall clock (to balance memory and CPU-bound loads), you need to balance cache churn with workload in your processor affinity (sometimes having related threads on the same core is faster, sometimes it isn't). Somehow, I can't help feeling that the one-size-fits-all scheduler in Linux doesn't actually do all of this.

      --
      I am TheRaven on Soylent News
    9. Re:He ain't kidding. by digitalhermit · · Score: 1

      Interesting... My 7 year old's computer is a dual core with hyperthreading. The OS sees 4 cores. It was a $500 system including monitor. My desktop is a quad-core with hyperthreading, so it sees 8 cores. I run some moderately intensive workloads on it (lots of financial analysis, daily re-compiling of 120M worth of source code, sometimes a VMWare session to access my work VPN which is Windows only), but perhaps all this is not as intense as a hardcore gamer. I could easily see them using a dual-quad core system which would show 16 cores. The system is not pegged even during the most intense sessions, but the cost for quad-core versus the dual-core was so minimal that I went ahead and paid the extra $90. Heck, the low-end system I'm building out for my employer has 8 real, 16 virtual cores.

      So I think 16 cores is a very real possibility for a home power-user system.

    10. Re:He ain't kidding. by SpinyNorman · · Score: 1

      What YOU run is irrelevant to what's useful to other people. Most people are running desktop machines or laptops, not multi-node clusters, and anyway unless each of your cluster nodes has 16+ cores (yeah, right) YOU'd also be better off with the new scheduler.

    11. Re:He ain't kidding. by Vexorian · · Score: 1

      Dear dbIII,
      You run a server/research computer thingy. I want to run a home desktop. That's the difference.

      Thank you.

      --

      Copyright infringement is "piracy" in the same way DRM is "consumer rape"
    12. Re:He ain't kidding. by Anonymous Coward · · Score: 0

      Ummm...dual socket 1366 $400
      hyperthread capable xeon $400 ea

      There's your 16 cores. No deep pockets required.

      If this scheduler were out 5 years ago the "16 core" limit wouldn't be a big deal.
      Next generation is looming with 8 real cores per socket.

    13. Re:He ain't kidding. by dbIII · · Score: 1

      It's an answer to the previous post which stated something which I am shown is not true nearly every day - that is why it is relevant and I shared the example.
      Just see it as an illustration that the "can't even cope with a CPU bound application" statement is bullshit.

    14. Re:He ain't kidding. by dbIII · · Score: 1

      It's an example to show that CPU bound applications do run effectively so just as relevant to your home desktop.

    15. Re:He ain't kidding. by Concern · · Score: 1

      It's a good point, although I doubt many people run Linux on Niagara, let alone in production. Although maybe I'm wrong? I'd love to hear from whoever's doing that.

      Linux's multiprocessing capabilities probably have their sweet spot closer to the scientific, military and large corporate (i.e. IBM) supercomputers where Linux is more popular.

      --
      Tired of Political Trolls? Opt Out!
  21. Re:Who cares? by amn108 · · Score: 1

    I am not sure what you are trying to paint here. If you have four cores, and do a compilation through 4 jobs, the compilation will race to complete and optimally should load all cores (especially since you explicitly told it to do it 4-way). Also, compilation is not all that I/O bound, it is more CPU bound. Anyways, I think I missed the meaning of your post entirely. Explain please... :-)

  22. 16... okay for the desktop for 12 months by MosesJones · · Score: 4, Interesting

    16 sounds like a ridiculously high number for a desktop but is it?

    Already we have 4 core processes which have "soft" additional threads (Intel's HT for instance) and some people already have dual CPU desktop machines meaning they are already at the 16 CPU limit.

    Roll on 12-18 months and we'll be seeing 8 core CPUs with 8 soft-cores as coming in on top end desktops. Roll forwards 3 years and you'll be seeing 32 core CPUs with 32 soft-cores which is where the scheduler breaks down.

    So the problem here is that this is a brilliant optimisation for today and for pieces like the netbook market but won't be good for the desktop market long term.

    With Linux looking to be strong in the netbook market however it does say that having a more efficient scheduler for that market would be a better idea than just optimising everything for the server side.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:16... okay for the desktop for 12 months by silanea · · Score: 1

      [...] So the problem here is that this is a brilliant optimisation for today and for pieces like the netbook market but won't be good for the desktop market long term. [...]

      How is this a problem? The scheduler supposedly (I did not test it) works well for the current situation, so it should be looked into and used if it holds up to its promises. And when the technical progress renders it outdated, it should be discarded and replaced with something better.

      I would rather have a better scheduler right now and switch again in three years than put up with one which works suboptimal now and may or may not run better on future hardware.

      --
      Rudolf Hess edited Mein Kampf. He was the very first grammar nazi.
    2. Re:16... okay for the desktop for 12 months by Xabraxas · · Score: 1

      16 sounds like a ridiculously high number for a desktop but is it?

      16 is very high for a desktop system. The majority of "desktop" systems are now laptops. I doubt you're going to see 16+ cores in a laptop anytime soon. Very few people are buying desktops these days and the few people who actually need a desktop system with 16+ cores are probably going to have entirely different workloads from the average user.

      --
      Time makes more converts than reason
    3. Re:16... okay for the desktop for 12 months by gbjbaanb · · Score: 1

      Everyone considers the netbook market. Why won't anyone think of the mobile phones?!

    4. Re:16... okay for the desktop for 12 months by Anonymous Coward · · Score: 0

      Amen, and also note that the fastest rising segment of pcs being bought are LOW END laptops, which Windows XP blows Ubuntu out of the water on on battery life. (That doesn't stop me from using Ubuntu though, even though I have ~30% less time with it compared to XP on this thing.)

    5. Re:16... okay for the desktop for 12 months by Anonymous Coward · · Score: 0

      Already we have 4 core processes which have "soft" additional threads (Intel's HT for instance) and some people already have dual CPU desktop machines meaning they are already at the 16 CPU limit.

      The fact that they exists doesn't mean that anybody is using them. I personally know only one person that have a desktop with more than 2 cores, and she's using it to do protein-folding calculation!

    6. Re:16... okay for the desktop for 12 months by apoc.famine · · Score: 1

      If you buy a 16 CPU+ board in the next year, then don't use this scheduler. It will still benefit the millions of us with less than 16 CPUs. And there will be millions upon millions for the next several years. Not everybody is in a 1-2yr upgrade cycle.

      --
      Velociraptor = Distiraptor / Timeraptor
    7. Re:16... okay for the desktop for 12 months by TheRaven64 · · Score: 2, Insightful

      16 probably isn't very far off. The ARM Cortex A9, which is starting to ship into handhelds and mobile phones, scales to 4 cores. The A10 will probably handle 16, so expect to see handheld computers with 16 cores in the next couple of years. Of course, when you're on battery power, you'll probably want to turn a few of these off, so the scheduler has to decide not just which jobs to run, but how many cores to enable at any given time. This is a really difficult problem (you can read some interesting papers on the subject, quite a few funded by Intel research grants, if you look) because running two cores at 500MHz can use less power than running one at 1GHz, but only if they are both loaded. Once you add in the ability to scale the clocks on each core independently it becomes even more tricky. Then you need to add in the requirements of asymmetric multiprocessing environments; deciding if it is worth turning the GPU core on to run this OpenCL kernel, or should you schedule it on the CPU, for example.

      Any scheduler created today is likely to look horribly antiquated in five years. There are so many open research problems in the domain, before you even get down to implementing the algorithms.

      --
      I am TheRaven on Soylent News
    8. Re:16... okay for the desktop for 12 months by SpinyNorman · · Score: 3, Insightful

      I guess you didn't read TFA:

      Can it be made to scale to 4096 CPUs?

      Sure I guess you could run one runqueue per CPU package instead of a global
      one and so on, but I have no intention whatsoever at doing that because it
      will compromise the performance where *I* care.

      In the meantime if you care about CPU utilization and latency then use this. Tomorrow will take care of itself. It's not like if you buy one computer or graphics card, or build one kernel, that you're tied to it for the rest of your life. You use this year what's available and update when the situation warrants it.

    9. Re:16... okay for the desktop for 12 months by Anonymous Coward · · Score: 0

      16 IS ridiculously high for a desktop, at least in the modern use of the term "desktop" as being different from "server" and "workstation". Up until very recently, my desktop machine was a four year old dual-core system still running DDR-1 memory, and there were only two use cases where I ever felt CPU limited... doing heavy lifting inside a VM, and doing heavy lifting inside emulating an entire different architecture (heh, playing PS2 games on my desktop...). I suppose I could have forced a third case if I tried to do ultra high end gaming, but I would have needed a bigger monitor and beefier video card to hit CPU limits there. When that mobo died, I went to a triple core chip and DDR2, and I'm using the lower power (lower clocked) triple core, and I have to cap the framerate in the PS2 emulator to keep it from spiking up to 100-150fps (native PS2 framerate is supposed to be 60...)

      If you're running two quad-core chips with hyperthreading, you're far, far beyond running a "desktop" system, and thus shouldn't be running a desktop-focused kernel. And that's not really going to change much in the next several years. Chips with more cores are coming out, but the chipmakers build this things in pricing/usage tiers and the higher core ones are most definitely not being aimed at casual desktop use.

      I'm just not seeing the use case for >=16 core mobile stuff either. I mean, seriously, those things may come to exist in the next few years, but probably most of those cores will be powered off most of the time, and in those cases where you've got all 16 burning, you're probably running something that's not desktop-UI-focused anymore.

    10. Re:16... okay for the desktop for 12 months by Andrew+Cady · · Score: 1

      Regardless of the "market", there sure are a lot of desktop machines in physical existence with fewer than 16 cpus.

  23. Re:Linux gets Yet Another Scheduler by deniable · · Score: 2, Funny

    Musical Schedulers? Let me guess, when the music starts to skip, a random process gets killed.

  24. Re:Who cares? by Anonymous Coward · · Score: 0

    You didn't even bother reading the article did you...

    make -j4 doesn't make your quadcore max, that's the issue, look in most make manuals and you'll find it recomends cpu's+1 atleast to max out cpu usage. BFS will run maxed with -j4.

  25. Re:Who cares? by internet-redstar · · Score: 1

    On very slow CPU's compiling something might seem to be CPU bound, but with modern hardware it isn't anymore. Take compiling the kernel as an example. In his FAQ, he uses make -j as an example for CPU bound processes. In modern hardware it's more of an I/O bound process than CPU bound. This is also why you will still see a lot of CPU idle time on make -j 2 on a dual core with a 'normal' scheduler. And that's also what it should be. If you create a scheduler who has in the same situation less idle time, it only means that you have created a less efficient one... and one shouldn't celebrate a better scheduler! :) Test cpu intensive load with CPU bound processes, I/O bound with I/O bound processes. But if a scheduler designer thinks make is a CPU bound process, should we even take time to look at his code?

  26. GIT repository? by MichaelSmith · · Score: 1

    The FAQ:

    Sorry, it's not the right tool for me so it's not worth me investing the time
    in setting one up.

    C'mon Con. DSCM is a great way to distribute forks of software. If you don't like git (I don't) there is a mercurial mirror of the linux kernel available and hosting a repository is dead easy. There are plenty of free options anyway. Or ask me.

  27. Re:Who cares? by amn108 · · Score: 1

    Ok, I get it now. Will take time to process :-)

    P.S. Compilers are getting more and more intelligent these days, and intelligence comes at the price of CPU cycles, so it would be more observant to say that indeed even with modern hardware, compilers developing in parallel, they still are keeping up to remain CPU-bound? But you are of course right about C compilers (which is what kernel stuff is built with), these develop much slower (lack of necessity, really) and thus the hardware has outran their needs by now, making them I/O bound indeed.

  28. Re:Who cares? by internet-redstar · · Score: 1
    I did bother to read the article.

    And the fact that BFS isn't even able to properly schedule n+1 lightly-cpu-bound processes certainly doesn't talk in it's favor.

    But it's true; I haven't tested the code yet, and miracles could exist, but his analysis isn't confidence inspiring - to say the least.

  29. Well? by Anonymous Coward · · Score: 0

    Maybe if someone were to hook this up with OSS in Ubuntu... we could be looking at a distro that's finally suitable for music production?

  30. Pluggable schedulers need to come back by OrangeTide · · Score: 1

    I only care about 200-800MHz single core ARM performance. When I do have a dual-core ARM, I'm only running Linux on one core in that situation. Not only am I am evil bastard that doesn't cared about desktop performance, like those nasty server-oriented kernel maintainers, I also don't care about server performance!

    That said I think I like his scheduler for embedded. I may have to try the patch out at work and see how many apps and drivers choke because it exposes their races.

    I could do without his emotional baggage in his BFS faq though.

    --
    “Common sense is not so common.” — Voltaire
  31. Erm... by _Shad0w_ · · Score: 1

    Why have you put an editorial "sic" in there? "i.e." is perfectly valid in the context in which it was used, it's an abbreviation of the Latin, "id est", or "that is".

    The quote, if read in a manner expanding the abbreviation, would read "...and not scale to massive hardware. That is, it is a desktop orientated scheduler..." I would probably have changed the full stop after "hardware" to a semicolon, but that's me.

    --

    Yeah, I had a sig once; I got bored of it.

    1. Re:Erm... by Anonymous Coward · · Score: 0

      I wondered the same thing, we should put a sic on the sic. Also, I prefer to think of e.i. as "that means" which is usually clearer in most contexts.

    2. Re:Erm... by myvirtualid · · Score: 1

      Because either the 'i' should have been capitalized since "hardware" was followed by a period, or the period following "hardware" should have been a comma.

      Since neither construction was used, the paragraph as written did not follow the conventional rules of grammar, therefore, the sic was required.

      I also could have written "[hardware, i.e.,]", but that wouldn't have led to so many fruitful side discussions.

      --
      I'm here EdgeKeep Inc.
    3. Re:Erm... by ta+bu+shi+da+yu · · Score: 1

      No folks. It's not "orientated", it's "oriented". The sic is most definitely in the wrong place.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    4. Re:Erm... by Anonymous Coward · · Score: 0

      Except that in UK usage, "orientated" is the correct form. Google it. You will see how Oxford backs it up.

    5. Re:Erm... by cheros · · Score: 1

      Look, stop the semantics lesson. I'm getting sic of it. :-)

      --
      Insert .sig here. Send no money now. Owner may sue, contents will settle. Batteries not included.
    6. Re:Erm... by ta+bu+shi+da+yu · · Score: 1

      That's a fair point, but it still explains why they added the sic.

      --
      XML is like violence. If it doesn't solve the problem, use more.
  32. That has NEVER been the goal by Anonymous Coward · · Score: 0

    If they really wanted maintainability they would have changed to microkernel architecture years ago.

    1. Re:That has NEVER been the goal by Curtman · · Score: 1

      If they really wanted maintainability they would have changed to microkernel architecture years ago.

      Obviously.. That's why Hurd is so successful.

    2. Re:That has NEVER been the goal by TheRaven64 · · Score: 2, Interesting

      Hurd is not unsuccessful because it is a microkernel, it is unsuccessful because it is run by perfectionists. Every time they get something quite good, they realise that a complete rewrite could make it even better and they throw away a lot of good code.

      Xen seems to be doing quite well as a microkernel, but until everyone is using multiprocessor machines there is a performance penalty for using a microkernel. When everyone is using multicore, they still have the disadvantage that monolithic kernels have been under active development for the last thirty years (more in a few cases) while microkernels have been largely ignored.

      A modern OS kernel, however, often has a lot more in common with microkernel designs even if it's all running in a single address space. Take a look, for example, at the OpenSolaris network stack. Every component runs in a separate thread and communicates with those above and below via message passing. It would be trivial to separate these out into different userspace processes, but there's no real advantage to doing so.

      --
      I am TheRaven on Soylent News
  33. Re:Linux gets Yet Another Scheduler by Kjella · · Score: 1

    I've yet to be impressed by your comment, which contains no reason for your opinion. Care to give us some examples of your uses & hardware?

    From looking at his posting history, I would say it's because Linux is GPL. He seems to have an axe or three to grind...

    --
    Live today, because you never know what tomorrow brings
  34. Re:Who cares? by Anonymous Coward · · Score: 0

    Or instead of trolling you could acknowledge that his benchmarks show not only higher CPU utilization, but also faster completion times.

  35. Couldn't this be a compiletime option? by Youngbull · · Score: 1

    A lot of options are available before compiling the kernel, couldn't the choice of scheduler be one of them? it wouldn't defenetly be a great enhancement for the portable platforms...

  36. Flash?? by evil9000 · · Score: 1

    Does this mean that Flash will **finally** run pause-free on the linux desktop?

    1. Re:Flash?? by SanityInAnarchy · · Score: 1

      Unfortunately, that's mostly a Flash bug, and not a Linux bug. For proof, take the same video and play it in mplayer or vlc -- no pauses.

      --
      Don't thank God, thank a doctor!
    2. Re:Flash?? by SL+Baur · · Score: 1

      Apparently not, though it seems more like an Adobe issue than a kernel scheduler issue.

  37. Re:Linux gets Yet Another Scheduler by gabebear · · Score: 1

    Con is saying that his schedulers give the user the impression that the system is more responsive without providing any hard benchmarks.

    Whether a person is impressed or not is the only benchmark that Con seems to care about...

  38. ive tried by Anonymous Coward · · Score: 0

    Linux minty 2.6.30-ck-bfs208 #1 SMP PREEMPT Sun Sep 6 12:22:52 CST 2009 i686 GNU/Linux

    OK so i havnt compiled in a long time but i thought i'd give it a go, the performce/responsiveness was noticable on my eeepc 901 running linux mint7. I also later changed the other options he talked about including tickerless, 1000hz, preempt on. I cant complain - no crashes and flash and audio are better than before. Add a dose of opera 10 and youve got a sweet little netbook.

  39. A dumbass desktop scheduler by Anonymous Coward · · Score: 0

    Sorry, even my 2008 desktop is a multiproc multicore numa machine now (opterons). Kolivas is just wrong. The linux O(1) scheduler behaviour is a major win not worth sacrificing for increasingly obsolete old computers.

  40. AMD has 6 core right now and 12 in 2Q10 by charnov · · Score: 1

    AMD has 6 core right now and 12 in 2Q10. Intel and AMD will have 16 core by end of 2010 or early 2011. They are designed to run in multi-socket systems.

    --
    [RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
  41. Re:Who cares? by Mprx · · Score: 2, Informative

    Compiling with SSD vs. mechanical HD:
    http://anandtech.com/storage/showdoc.aspx?i=3631&p=25

    Compiling is CPU bound.

  42. One thing Con has always made me wonder... by petrus4 · · Score: 1

    ...is how many other scenarios there, have been, where someone had code for the kernel which was better than the default, but which got arbitrarily rejected by Linus out of hand. This might be a high profile case, but I'll be money that it's probably nowhere close to having been the only one.

    The benevolent dictator model, when it works, is a good thing. However, Linus, like all of us, is human, and he's also been working on the kernel for a long time now.

    There would have to have been times when he has made the wrong decisions, and something tells me that Con Kolivas represents one of them.

    1. Re:One thing Con has always made me wonder... by CAIMLAS · · Score: 1

      It'd be neat if there could be a "social networking site" of sorts set up where rejected patches could be reviewed by the community and kept for posterity. Maybe two rating criteria: implementation merit and concept.

      Such a system could allow for someone or someones to come along and make a potentially awesome patch collection and, if there are enough submissions, a completely different kernel.

      That said, there's nothing preventing someone from doing this now except for the overhead of digging through all the rejects manually.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
  43. i think you have a rather large obligation by Anonymous Coward · · Score: 0

    'I've done what I swore an oath to God two years ago to never do again; I've created "something that compiles". And in that purpose, I was a success. I've done this because, philosophically, I'm sympathetic to your aim. I can tell you, with no ego, this is my finest scheduler. If, on your journey, you should execute God, God will be assigned appropriate and fair system resources!'

  44. I am glad Con K. is back.... by AetherBurner · · Score: 1

    doing his best to stir the pot and not let the food stick.

    Sometimes a little revolution is a good thing.

  45. So, lemme get this straight. by Slartibartfast · · Score: 0, Redundant

    Someone returning after self-imposed ostracization to the LKML, and offering up an as-yet-untried (by third party) -- much less accepted -- scheduler rates higher than a new release of Asterisk?

    *Must* be a slow news day.

  46. Not so glorious, really by Runaway1956 · · Score: 0, Troll

    It is pretty tough to maintain when the lead developer takes extended vacations with the Rough Riders and the Bitch Babies at their favorite hideaway Oh, for information, it seems that Hans is one of the bitch babies

    --
    "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
  47. Re:Who cares? by internet-redstar · · Score: 2, Insightful
    This article talks about compiling pidgin, 54Mb source code tree with at least 15% of that multimedia clutter.

    During testing (on the Windows platform!) I guess it's safe to assume that everything was handled by filesystem cache.

    The comparisation with compiling the kernel on Linux on a machine with not too much RAM doesn't stand.

  48. Re:Who cares? by TheRaven64 · · Score: 2, Informative

    Also, compilation is not all that I/O bound, it is more CPU bound.

    Depends a lot on what you're compiling. A typical program on OS X, for example, begins with #import <Cocoa/Cocoa.h>. This includes a header which brings in around a hundred other headers for a total of about 3MB of preprocessed source. Most of the time you'll be using a precompiled header for this, but you still often get a spike of read activity at the start of a compilation, then a CPU-bound chunk, then a write-bound part as it generates the object code. This is why, when you use -j, you are recommended to use a few more processes than you have cores, so you can overlap the I/O-bound parts in one compile with the CPU-bound parts in the next.

    --
    I am TheRaven on Soylent News
  49. I'm happy. Good luck! by Anonymous Coward · · Score: 0

    YES! I'm so happy that -ck is back, and hope that Con's skills will be finally acknowledged more than before.

  50. Kudos Con by amightywind · · Score: 3, Interesting

    Welcome back Con! I wonder how long it is before Ingo "Kudos Con" Molnar rips of the new design? The kernel team has developed a very bad case of "not invented here." http://kerneltrap.org/node/8059

    --
    an ill wind that blows no good
    1. Re:Kudos Con by SL+Baur · · Score: 1

      I wonder how long it is before Ingo "Kudos Con" Molnar rips of the new design?

      Ingo posted benchmarks on lkml about 2 1/2 hours ago. In his tests, BFS didn't fare too well.

    2. Re:Kudos Con by Angst+Badger · · Score: 1

      That's usually the point at which conditions are ripe for some outsider to come up with something new and different.

      --
      Proud member of the Weirdo-American community.
    3. Re:Kudos Con by harmonise · · Score: 1

      In his tests, BFS didn't fare too well.

      Yeah, on a system that's more representative of a server than the average desktop computer, performing tests that your average, non-programmer desktop user isn't going to perform. Let me know when he retests BFS on a netbook.

      --
      Cory Doctorow talking about cloud computing makes as much sense as George W Bush talking about electrical engineering.
  51. He may be right for some things but I doubt it by dbIII · · Score: 1

    However many computer users are discovering that what they really want on the desktop is a server/workstation OS. MS Win98/ME just doesn't cut it in comparison to NT, Win2k, XP "Pro", Server2003/8, Win7 64bit or linux. You get I/O hassles even burning data onto DVDs or loading large files so server style scheduling is nice on the desktop. Going back to even time slicing like MSDOS is really a bit like those guys that think they have stumbled on an automotive conspiracy and they tune their cars to run perfectly at idle instead of under load and end up using almost no fuel per hour. While things may perform a vast amount better at idle you get worse performance under load which is when you want it.
    I get the impression that we have here an idea that all the kernel developers heard of in history of computers 101 and are dismissing it either because they thought it through while still students or dismissed it because it was abandoned some time ago. Con has come in from the outside without preconceptions and has either brought up something that might just work but has been dismissed out of hand or has hit the learning curve the other kernel developers went through while still students. Sometimes that gives you an advance and sometimes you just get people frustrated that they have to teach the new guy that isn't listening and won't even run the thing he's working on as his main system so can't really see the results. It's also annoying when someone brings a gun to a fist fight in discussions - none of us here could do his day job without years of the same experience and most of us couldn't even do it with that so suggesting that developers try doing his job for a day is a bit much.

    1. Re:He may be right for some things but I doubt it by gbjbaanb · · Score: 1

      While things may perform a vast amount better at idle you get worse performance under load which is when you want it.

      not necessarily, today power saving and efficiency at idle is a more desirable thing than performance under load.

      That's the point, there's almost certainly no 'right' answer, it depends too much on the task you want your computer to do. Having a single scheduler to fit all cases is never going to be right, you will always want something else. There's a post here from someone who runs high-performance computing using the noop scheduler because it gives than "a 30% boost", I say fair enough to that - a extreme case where you want a different scheduler. Back in the ordinary world, we want different schedulers for different uses, whether that be desktop, server, HPC, netbook or a mobile phone. 1 doesn't cut it well enough across *all* those platforms.

      The kernel devs could be gods, I doubt they can still come up with something that runs on a both a supercomputer and a mobile phone without making compromises that affect both of them. Better to tune each of them according to their needs.

    2. Re:He may be right for some things but I doubt it by Blakey+Rat · · Score: 1

      Just FYI, NT-based OSes (like Windows 2000, XP, Vista, 2003, 2008, etc) allow you to switch their scheduler from "server" mode to "desktop" mode.

      Look in Control Panel -> System -> Advanced -> Performance Options -> Advanced (again). The two options are called "Programs" and "Background services."

    3. Re:He may be right for some things but I doubt it by QuoteMstr · · Score: 1

      That's not quite true. The knob you're manipulating controls whether foreground processes receive a priority boost. The scheduling algorithm remains the same regardless.

    4. Re:He may be right for some things but I doubt it by dbIII · · Score: 1

      not necessarily, today power saving and efficiency

      Please note - that was a CAR analogy and you want cars to be able to move. Please look at again and see if it gets the point across.

  52. Re:Linux gets Yet Another Scheduler by ta+bu+shi+da+yu · · Score: 1

    User perception IS the benchmark for responsiveness on the desktop. Sheesh.

    What sort of benchmarks were you thinking of implementing? Genuinely curious.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  53. Is there a more pragmatic solution to this? by Anonymous Coward · · Score: 0

    I understand and appreciate when Con is doing. I also completely understand and appreciate what Ingo and the kernel guys are doing and saying and what they've done. The Linux scheduler has gotten much better over the years, especially for servers. The other thing is OS X and Windows don't have pluggable schedulers and yet they both seem to strike a nice balance with great desktop performance as well as legitimate servers. I also understand that they don't have a lot of tuning knobs and the rationale behind exposing those knobs to the users (seems everyone is an 'expert' at process scheduling...)

    I can't help but think there is a piece or a couple pieces of information that the scheduler seems to not have which could solve this problem. It seems like there is some missing context or something where if they could easily identify "desktop processes" vs. "mostly idle daemons" or something we could come up with a better set of scheduler priorities or some different heuristics to improve the desktop feel without starving other processes. Maybe it's something as simple as promoting the priority of processes run by someone logged in at the console, I don't know.

    I know you're pissed off, Con, and a nice "f-you" to the kernel team might feel good but don't you think solving the actual problem instead of just providing a band-aid would be a better use of everyone's energy?

  54. Re:Linux gets Yet Another Scheduler by gabebear · · Score: 1

    I've yet to be impressed by any of them, for any use, with any hardware.

    I've yet to be impressed by your comment, which contains no reason for your opinion.

    My point is there are no benchmarks given, only opinion, and bitching about other people's opinions is pointless.

    Benchmarking responsiveness is pretty straight forward; anything reacting to user-input slower than ~150ms is perceived by humans as slower than real-time. Nobody seems to care enough to actually benchmark the responsiveness of any of these schedulers, so I don't see how people like Con can be taken seriously.

  55. Re:Who cares? by SpinyNorman · · Score: 1

    And the fact that BFS isn't even able to properly schedule n+1 lightly-cpu-bound processes certainly doesn't talk in it's favor.

    You misinterpreted TFA.

    What Con actually said was that if you have a 4 core CPU then for optminal efficiency run make -j 4 rather than make -j 5/6/etc.

    This OUGHT to be the case for ANY (decent) scheduler - it ought to be more efficient to have processes assigned to cores and not needlessly being swapped in and out because you've opted to run more processes than cores to gain some efficiency.

    That fact that Con's scheduler does see a benefit when number of processes = number of cores does not reflect a problem with HIS scheduler - it is a problem with the standard scheduler that in order to compensate for scheduler inefficiency you need to run more jobs than you have cores in order to try to keep all cores busy.

  56. Re:Linux gets Yet Another Scheduler by Anonymous Coward · · Score: 0

    That's fine, but you'd have to do double-blind testing to objectively measure user perception.

  57. No advantages? by js_sebastian · · Score: 1

    A modern OS kernel, however, often has a lot more in common with microkernel designs even if it's all running in a single address space. Take a look, for example, at the OpenSolaris network stack. Every component runs in a separate thread and communicates with those above and below via message passing. It would be trivial to separate these out into different userspace processes, but there's no real advantage to doing so.

    No advantages? Apart from the fact that suddenly, the OS can enforce the fact that you are using message passing, rather than shared memory? Or the fact that a kernel component can crash/be compromised without necessarily crashing/compromising the whole system. The one strong argument against microkernels has always been performance, and as the number of cores increases it is less and less relevant...

    1. Re:No advantages? by ultranova · · Score: 1

      The one strong argument against microkernels has always been performance, and as the number of cores increases it is less and less relevant...

      The performance penaly of microkernels is caused by context switches when messages pass from one address space to another, and won't go away no matter how many cores you have. However, even on outdated machines (such as my 1Ghz one I'm writing this message on) the multiple context switches associated with these characters flowing from kernel to X and from there to Firefox and the return traffick of writing them to screen seems to not result in any significant slowdown.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    2. Re:No advantages? by The_Wilschon · · Score: 1

      I'm sure as heck no expert on this sort of thing, but if you have (in the extreme case) as many cores as you have threads, why would you ever have a context switch at all? It seems that increasing the number of cores serves precisely to decrease the number of context switches required.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    3. Re:No advantages? by ultranova · · Score: 1

      I'm sure as heck no expert on this sort of thing, but if you have (in the extreme case) as many cores as you have threads, why would you ever have a context switch at all? It seems that increasing the number of cores serves precisely to decrease the number of context switches required.

      It will decrease context switches (assuming a good scheduler, of course) but increase locking of cache memory pages instead. However, even my old 1GHz AMD Duron has no problem managing 1000 context switches per second, so I don't think that this is a significant problem.

      Anyway, Linux seems to be heading towards microkernel architecture anyway, with some file systems (FUSE) and now serial devices in user space, so we'll see...

      And of course nothing stops processor manufacturers from optimizing context switches more, if that turns out to be the trend.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  58. swapping... by js_sebastian · · Score: 1

    I wonder what BeOS had, that was so good. I mean, was it a scheduler thing? Or was it the pervasive multithreadedness that the OS almost forced upon the developers? Whatever it is, it worked like black magic: BeOS would always listen to the user input, no matter what the heck it was doing in the background, no matter what insane load was on the CPU - your mouseclicks were always reacted upon immediately, your drags were always reacted upon immediately, your typing, resizing, brushstrokes, midi-signals, whatever, always, under any circumstance, were immediately and smoothly followed by the correct response.

    I know nothing of beos. However, my perception is that the only time that a modern linux (probably also windows) becomes unresponsive, short of relly abusive load, is when an application hoards too much memory and gets the computer swapping heavily. At that point the scheduler cannot really prevent unresponsiveness, because it has to swap stuff in and back out whenever it changes the running task...

    1. Re:swapping... by greg1104 · · Score: 1

      It's easy to get Linux to stop completely dead when something is writing heavily to disk. I wrote a blog entry on one such example where the server became completely unresponsive to anything for several seconds at a time, even though only a little over 40% of the RAM was being used. That I was able to improve using a tunable that's now the default in current kernels, but the root problem is still there, and as system RAM capacities go up it gets worse rather than better.

  59. Re:Who cares? by internet-redstar · · Score: 1
    Which would be correct if make was a purely CPU bound process.

    The point I'm making here is that it isn't. Because the processes have to wait for I/O anyhow (latest kernel source tree is 400mb before make and 650mb after, so involves not some little amount of I/O).

    So any DECENT scheduler should be able to deal with the n+1 and/or n+2end make processes as well while the n first processes are in I/O wait state.

  60. Con + Alan Cox... by Anonymous Coward · · Score: 0

    It would be interesting to see people like Con and Alan branching off the mainline kernel. This way we could create more competition between the branches, which would eventually improve the kernel as a whole.

  61. Re:Who cares? by amn108 · · Score: 1

    Thanks for this important correction.

  62. Re:Who cares? by TheRaven64 · · Score: 3, Informative

    If you're interested, the clang team have done a lot of profiling of exactly what takes time when compiling. It's particularly interesting how much of a bottleneck preprocessing is with gcc and, more importantly, distcc (which sends the preprocessed sources over the network for compilation). Most of the results are on the web site, with a few in the mailing list archives.

    --
    I am TheRaven on Soylent News
  63. Agreed, 110%: "Politics" & "Cronyism" abounds. by Anonymous Coward · · Score: 0

    "I don't have 4096 CPUs, good job Con Kolivas!" - by boldie (1016145) on Sunday September 06, @06:39AM (#29330241)

    Neither do I (know any END/HOME users that do? I don't... lol!). Yes, I wrote about this before, see my subject-line above: I felt that Linus Torvalds is pulling a "Edison to Tesla" maneuver here (ala "The War of the Currents"), & cannot STAND the fact that someone outwrote him or his other colleagues (Like Ingo Molnar (that KISS HIS A$$, & "Support his position" - which, iirc? WAS WHAT LINUS TORVALDS/PENGUIN #1 SAID to Con Kolivas, when this all came to light)), is all.

    I.E.-> The fact that someone (Con Kolivas) did something BETTER (for end-users no less, the folks that matter vs. L.T. or Ingo Molnar his stooge/crony) & he cannot stand it & 'outed/dissed' this guy Con Kolivas.

    I think this Ingo Molnar fellow may be some "best buddy" of Linus Torvalds @ this point & his work being outperformed by others like Mr. Kolivas here is going to show the world "what's-what" on this account, as far as process scheduler superiority (especially for END/HOME users of Linux - & that? THAT IS WHERE LINUX NEEDS TO GROW THE MOST (it's already a PROVEN server in many scenarios is why, time to work on the "end user" front now imo)).

    Personally? Linus Torvalds MAY be a good programmer, but, inventing an OS which is based off of another previous OS is not such a "HUGE ACCOMPLISHMENT" imo @ least - it's only taking a base design & improving it (WITH THE HELP OF MANY OTHERS, no less)... he stood on the shoulders of giants, like the rest of us, in other words, & "deifying him" is not a good idea really. He's just a man, like the rest of us, & CAN MAKE MISTAKES as well.

    E.G.-> If this works out as BETTER for end users? I think L.T. or his crony/pal Ingo Molnar made a HUGE mistake in hassling this guy Con Kolivas, personally... not a good move.

    (Especially not if Con Kolivas' work here shows it is superior to CFS etc., for end users use).

    APK

    P.S.=> IF this scheduler works for people, ESPECIALLY "end user" type folks (home users etc. et al)?? Let it OUT to the masses... let them try it out, & see their feedback on it (as it is the BEST WAY to get improvements out of it, by field testing it on MANY subjects & finding bugs or specific use-cases where it does NOT work out well for them, as "criticism is worth 1,000 praises" (&, it's a devs BEST FRIEND, speaking as one here myself, as both dev & end user))... apk

  64. Re:Who cares? by Anonymous Coward · · Score: 0

    I'd mod you up if I could.
    linux kernel compilation might be a mostly CPU bound task, but in other contexts compilation can very well be I/O bound.

    Anyone unlucky enough to work, for example, in a clearcase environment with dynamic views, many users and crappy local network.

    Oh well.

  65. Re:Who cares? by BZ · · Score: 1

    As a counterexample, compiling the Mozilla source is most certainly I/O bound: I can do a full tree compile about 2-3x faster there warm than cold.

    In practice, for different projects different things will be the limiting factors for compilation. Have lots of headers? More likely to be I/O bound. Have only one large file with some code that triggers an O(N^2) algorithm in the compiler's optimizer? More likely to be CPU bound.

    What I _can_ guarantee you is that if you're compiling Mozilla and using gnome-terminal then redirecting all the output from the compile to a file will speed up your compile considerably, assuming you're using a -j setting high enough to utilize your cores well. the terminal app will suck up CPU like crazy to show all that text scrolling by.

  66. Sloppy seconds again! by sgt_doom · · Score: 1

    Why must I always be Number Two? Amen, seconded.....

  67. i.e. used correctly, no "sic" needed. by Anonymous Coward · · Score: 0

    BFS 'was designed to be forward looking only, make the most of lower spec machines, and not scale to massive hardware. i.e. [sic] it is a desktop orientated scheduler,

    Leave it to a Slashdot reader to hyper-correct a kernel dev on grammar. "i.e." comes from Latin "id est", meaning "that is". Let's re-read the quote with that subsitition made.

    BFS 'was designed to be forward looking only, make the most of lower spec machines, and not scale to massive hardware. That is, it is a desktop orientated scheduler,

    Seems fine to me.

    1. Re:i.e. used correctly, no "sic" needed. by Anonymous Coward · · Score: 0

      'Orientated' == you fail English forever.

    2. Re:i.e. used correctly, no "sic" needed. by Anonymous Coward · · Score: 0

      I thought "orientated" is standard usage in the UK. Look at this from AskOxford.com.

  68. con kolivas by Anonymous Coward · · Score: 0

    sounds like teh name of a super-villain. cool!!

  69. Which kernel version do I apply the patch to? by sammydee · · Score: 1

    I've compiled kernels before but I haven't patched them. It doesn't look too hard, except that it doesn't seem to say anywhere which kernel version to apply the patch to. Latest git? Latest stable? Mainline? Any ideas?

    1. Re:Which kernel version do I apply the patch to? by sunny256 · · Score: 1

      I applied the patch to v2.6.30 from Linus' git tree at git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git (commit 07a2039b8eb0af4ff464efd3dfd95de5c02648c6), and it compiled fine. Had to let patch(1) assume "-R" when it wanted to delete non-existant files, though. Worked for me:

      linux-2.6$ ln -sv . linux-2.6.30-bfs
      linux-2.6$ patch -p0 </tmp/2.6.30-sched-bfs-209.patch
      patching file linux-2.6.30-bfs/Documentation/sysctl/kernel.txt
      patching file linux-2.6.30-bfs/fs/pipe.c
      patching file linux-2.6.30-bfs/include/linux/init_task.h
      patching file linux-2.6.30-bfs/include/linux/sched.h
      The next patch would delete the file linux-2.6.30-bfs.orig/kernel/sched.c,
      which does not exist! Assume -R? [n] y
      [...]

    2. Re:Which kernel version do I apply the patch to? by hechacker1 · · Score: 1

      It applies against 2.6.30 (Just look at the patch file headers). Or you could grab zen-sources which includes a choice between the latest CFS or BFS.

    3. Re:Which kernel version do I apply the patch to? by sunny256 · · Score: 1
      Correction: Symlink error, now it applies fine:

      linux-2.6$ ln -sv . linux-2.6.30-bfs.orig
      `linux-2.6.30-bfs.orig' -> `.'

      Same kernel version as mentioned above.

  70. Re:Who cares? by SpinyNorman · · Score: 1

    The article isn't saying that the existing scheduler is better than BFS for make -n+1 - it's just saying that BFS doesn't need make -n+1 to keep the cores busy, which is pretty good indication that it's not IO bound (regardless of intuition to the contrary). Note that scheduling is done at thread level, and I assume the compiler is anyways doing IO, preprocessing and lexical analysis in a separate thread from parsing, etc.

  71. Re:Who cares? by Anonymous Coward · · Score: 0

    Just run sar after a compile, or top during, and you'll see even on modern hardware you are CPU bound when compiling.

  72. Re:Who cares? by Anonymous Coward · · Score: 0

    Link please?

  73. Re:Who cares? by Anonymous Coward · · Score: 0

    I assume the compiler is anyways doing IO, preprocessing and lexical analysis in a separate thread from parsing, etc.

    Now why would you assume that?

  74. Ingo's Response by microbee · · Score: 1

    http://lwn.net/Articles/351058/

    Basically, he can not see any BFS performance improvements, on this box (Dual Quad-core).

  75. just compiled by Anonymous Coward · · Score: 0

    wow thats running so much smoother. thanks con

  76. ingo vs con @ gmane by calvinandhobbes · · Score: 0

    I hope you guys are following this interesting conversation
    http://thread.gmane.org/gmane.linux.kernel/886319

  77. Re:Linux gets Yet Another Scheduler by revengebomber · · Score: 1

    Might be slightly OT (well, not relative to P/GP posts), but if this is a scheduler that will prioritize Rhythmbox's hard drive reads over my GIMP swapping, then I'm all for it. Nothing worse than having to turn off the music because your hard drive is being swapped to too much to... stream a 192kb/s mp3.

    --
    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  78. I fucking love you man. by Anonymous Coward · · Score: 0

    I Fucking love Con, He's just awesomly talented, passionate and dedicated (as well as having many other traits at levels that can only be described as "awesome")

    we need people like this to counter balance other people like linus, shuttleworth, stallman et al (who are all also awesome in differen't ways but conflict with each others awesome somewhat)

    please stick around CK you have many fans.

  79. Schedulars for desktop -- need an improvement by lsatenstein · · Score: 0

    I use Fedora and I prefer to do updates with yumex. If I overlay the yumex window (while it is working), with another window, I could wait for as much as 30 seconds before yumex window updates (refreshes). This could be a yumex design problem, but I take it as a schedular problem. In my IBM mainframe days, the operating system was MVS (OS390 today). The concept was to create performance groups. Interactive performance group had high priority, while good old batch had low priority, all within the perfomance groups. As far as I can remember, performance groups were prioritized by the system administrator. It would mean a change to Linux, to classify an application into a performance group. Tar, cp, and a few other apps could be in the batch group, receiving lower priority status. Just my thoughts on scheduling. Schedule performance groups and schedule tasks within a performance group.

    --
    Leslie Satenstein Montreal Quebec Canada
  80. Re:Who cares? by SpinyNorman · · Score: 1

    Good question! It'd be the most efficient design, but maybe I assume too much!

    On reflection, the fact that make -j N>1 is a speed-up is probably a good indication that the compiler doesn't itself do a good job of separating IO from CPU usage (i.e. doesn't get the multithreaded design right).

  81. Proper use of i.e. gets a "[sic]" ?? by sparkz · · Score: 1

    The cited use of i.e. seems perfectly reasonable. When i.e. and e.g. are so often used incorrectly, nobody recognises the correct usage any longer!

    --
    Author, Shell Scripting : Expert Re
  82. Re:I'm all worked up over what you think - NOT by smash · · Score: 1

    oh yay, the slash id pissing contest. do i win a prize? by the way, you post like an asshole.

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  83. Re:I'm all worked up over what you think - NOT by Zero__Kelvin · · Score: 1

    Your .sig says it all ...

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun