Slashdot Mirror


Linux 2.2 and 2.4 VM Systems Compared

Derek Glidden writes "I got sick of trying to figure out from other people's reports whether or not the 2.4 kernel VM system was broken or not, so I decided to run my own tests, write them up and post them online. The short conclusion is that the 2.4 VM rocks when compared with 2.2, but there's more to it than just that."

225 comments

  1. Which 2.4 VM ???? by CDWert · · Score: 0

    Whick 2.4 VM rocks ?

    The latest , if so you are correct, the -ac seems to pretty much Suck though.

    --
    Sig went tro...aahemmm.....fishing........
    1. Re:Which 2.4 VM ???? by Anonymous Coward · · Score: 0

      The both rock compared to 2.2, that's his point in the article.

    2. Re:Which 2.4 VM ???? by Alan+Cox · · Score: 5, Informative

      As of 2.4.14pre the Andrea/Marcelo VM is definitely doing better on most workloads. Where the Riel one has advantages the right way is going to be to build on the Andrea VM.

      The 2.4.14pre VM also seems to be taking the harder brutalisation test sets pretty well - something the Andrea VM didnt do in 2.4.10-13

    3. Re:Which 2.4 VM ???? by cpeterso · · Score: 1


      And didn't Linus add Rik's new VM during the Linux 2.4.0-pre code freeze? Linus has no concept of release management. He should follow FreeBSD a while, where they actually have a beta releases, release candidates, and separate branches for stable and development releases. Thank goodness for Alan Cox's voice of reason to balance Linus.

    4. Re:Which 2.4 VM ???? by Anonymous Coward · · Score: 0

      Once 2.4.15 is away, Linus will be working on 2.5, and Alan will maintain 2.4 (as he maintains 2.2) with no new features, only bugfixes and driver updates.

      That is his concept of release management. If you want FreeBSD release management, use FreeBSD.
      It's not hard to keep up with the kernel mailing list and see what's what and where the kernel is at.

    5. Re:Which 2.4 VM ???? by Anonymous Coward · · Score: 0

      Who you callin' a faggot, faggot?

      Oh, cultchyldren.com fucking blows.

      Canada #2

    6. Re:Which 2.4 VM ???? by Anonymous Coward · · Score: 0

      heh...that was actually funny, I laughed...

    7. Re:Which 2.4 VM ???? by Anonymous Coward · · Score: 0

      You are the man!!!!

      WHOO WHOO WHOOO

  2. RTA ???? by Anonymous Coward · · Score: 0

    "You'll notice that again, 2.4.13 squeaks by 2.4.12-ac6 in terms of compile times"

  3. Better but bad by Chocky2 · · Score: 2, Insightful

    2.4 VM is, IMO, a significant improvement over the 2.2 VM, but completely rewriting something as important as VM management is intrinsicaly risky and it's difficult to predict with even the slightest confidence many of the consequences of such a change. This sort of thing should be left for major revisions.

    1. Re:Better but bad by ekrout · · Score: 2

      This is why we should have a code fork of the Linux source for 6 months to a year to see which VM matures more quickly. Then, rejoin forces, settle on one of the VMs, and (johnMadden)BOOM!!!(/johnMadden) Thoughts?

      --

      If you celebrate Xmas, befriend me (538
    2. Re:Better but bad by Anonymous Coward · · Score: 0

      Two VM enter, one VM leave!

      There can be only one.

    3. Re:Better but bad by ncc74656 · · Score: 1
      Click Here If You Like Microsoft
      How childish...and I guess you think Nutscrape wouldn't splooge itself? I threw K-meleon at it and it tried to go into the same "death spiral" as IE. Thankfully, Win2K's task manager is pretty good about killing errant programs...didn't need to reboot or anything. It's a wonder you didn't set it up to load goatse.cx into each of the windows.

      www.jerks.com...at least that much is appropriate. Get a life.

      (So what if I'm offtopic? The crack-addict moderators will probably find something on-topic to mod down before they get to this message. Besides, when your karma is at 50, the only way to go is down...)

      --
      20 January 2017: the End of an Error.
    4. Re:Better but bad by Old+Wolf · · Score: 2

      It's more than 6 months since Alan Cox forked the kernel, isn't it?

    5. Re:Better but bad by Anonymous Coward · · Score: 1, Insightful

      Linux 2.4 is a major revision. If we waited until Linux 3.0 until a new VM subsystem came out, we might as well call Linux 2.4 "Linux ME" and Linux 3.0 "Linux ... 2007"? Remember that the Linux development cycle is vastly different to other operating systems (FreeBSD included), and Linus is rather pragmatic about changes. (2.4.10, with the new Andrea VM, should be proof of that.) The Linux VM needed rewriting, so it was rewritten. It's that simple.

  4. BSoD by parc · · Score: 3, Insightful

    From the article:

    These were pretty uninteresting - just sitting there watching the kernel compile. Except that at one point, while running the 2.4.13 kernel, the hard drive started grinding away with the drive light pegged on continuously, the display became extremely sluggish and quickly froze up entirely, and about ten minutes later, the hard drive light went off but the machine remained unresponsive, requiring a hard reboot. I don't think this was related to anything I was doing as I wasn't actually doing a compile run at the time - probably just a random occurance, but worth mentioning.

    So the machine essentially BSoD'd, but it's not interesting?

    1. Re:BSoD by Anonymous Coward · · Score: 1, Informative

      BSODs happen right away. They don't put you through that kind of torture. Also, they give you a nice stack trace for informational purposes.

      If that had been a coredump, it probably could have been helpful, but since they don't even have a kernel debugger for Linux yet, these kinds of occurrences are just brushed away as "random occurance"s.

    2. Re:BSoD by Anonymous Coward · · Score: 0

      No, we _have_ a kernel debugger, but it's not being included with the kernel for some ... annoying reasons. Cough.

    3. Re:BSoD by Anonymous Coward · · Score: 0, Redundant

      > So the machine essentially BSoD'd, but it's not
      > interesting?

      Indeed. It might be "interesting" for Amazon and Google, to name at least two. The Google bug is currently being debugged on LKML.

    4. Re:BSoD by sbrown123 · · Score: 2, Informative

      Actually, its probably something very simple: EnergySaver. Computer went into sleep mode which I have seen lock Linux up before.

    5. Re:BSoD by Adrian+Voinea · · Score: 1

      Please mod this down, the guy is stupid. The article says:

      These were pretty uninteresting [...]Except that at one point[...]

      That means that the guys says that the BSoD(as you like to call it) was interesting.

    6. Re:BSoD by pe1rxq · · Score: 2

      You would be surprised what you can do with the call trace of an oops and a list of kernel symbols.
      No need for a debugger in the kernel.

      Jeroen

      --
      Secure messaging: http://quickmsg.vreeken.net/
    7. Re:BSoD by Puk · · Score: 2

      Um... what?

      These were pretty uninteresting - just sitting there watching the kernel compile. Except that at one point, ...

      So the machine essentially BSoD'd, but it's not interesting?

      It seems to me he said that they were uninteresting, except when it BSODed -- which was interesting.

      -Puk

    8. Re:BSoD by Anonymous Coward · · Score: 0

      This wasn't a random occurence either; in fact, that particular bug is the only thing stopping me from dropping Windows entirely. It's kind of sad to see that arguments and ego's regarding kernel development are actually forcing me into using an operating system I'd rather not, simply because the kernel that supports everything I need is too buggy to use at the moment.

    9. Re:BSoD by EllF · · Score: 1

      the nice part about the kernel is that you don't have to use the latest version of it. alan cox maintains his own tree which runs a different version of the VM (for now, at least); the 2.2 kernels are also still available.

      for the record, i've been running 2.4 since 2.4.1, and i've *never*, on three seperate machines, had a crash. i can't say that about windows. if the reason you aren't switching is because you think a linux-2.4 system will be less stable than your windows boxen, you might be running on a mistaken assumption.

      --
      We who were living are now dying
      With a little patience
    10. Re:BSoD by fwankypoo · · Score: 1

      If I had a moderation point, I'd kick your ass.

      --
      The time of day is 29:33.
    11. Re:BSoD by Anonymous Coward · · Score: 0

      I'm sorry, maybe I should clarify. I have tried -all- of the kernels in the 2.4x tree so far (not Alan Cox's, I'll admit). None of them have run properly on my machine; the hard drive starts to go crazy, swap fills up completely, and the machine crashes. Unfortunately, the 2.4 line has a number of components that I require on this machine (including a few USB devices), so I really can't use anything below that any more.

    12. Re:BSoD by domc · · Score: 1

      Very true. Power management can really screw with Linux if it is not configured properly. It is best to turn off all power management except DPMS.

      I've had this problem recently with my new machine (Soyo Dragon KT266/1.4 T-bird). It affected Windows as well. Afer I turned PM off I didn't have any more problems.

      The one thing that will consistently, legitimately lock Linux hard in my experience is 3d video games. (Again same problem in Windows). Luckily this shortcoming won't affect a server.

      Also, many times people will mistake an X11 lock-up for a Linux lockup. These can usually be cleared with a CRL-ALT-BACKSPACE. If that doesn't work, you can ssh into the machine and kill X remotely.

      domc

    13. Re:BSoD by parc · · Score: 1

      Amazingly enough, I _do_ use Linux. I also use FreeBSD and Windows. Linux has crashed on me several times, in 2.0.x, 2.2.x, and 2.4.x. FreeBSD has crashed on me in 2.2.6 and 3.0.
      I was not claiming Linux was less stable than Windows. I was more concerned with an operating system that crashed for no apparent reason, and the apparent lack of concern for it.

    14. Re:BSoD by parc · · Score: 1

      Pardon me, I should have been a little more verbose.

      "...probably just a random occurance, but worth mentioning"

      is my point of concern. It's worth mentioning, but there doesn't seem to be a sense of concern. No link to a coredump, no mention of a stack trace, no information whatsoever to try and resolve the bug. This is one of the major "weak" points of Linux(and *BSD). People say "it crashed" but don't give any information to try and resolve the problem. A user should not just accept a crash/bug as a random occurance. They need to give as much information as possible to help track down what is causing the bug.

    15. Re:BSoD by mmol_6453 · · Score: 1

      The lack of concern probably arises from our trust in OpenSource.

      "Someone else will figure it out and fix it."

      --
      What's this Submit thingy do?
  5. if you don't want to read the article by b-side.org · · Score: 5, Informative

    it goes like this -

    the 2.2 VM 'feels' better for single-user use (which i disagree with) but falls down under 'heavy' load. (which, as i've pushed 2.2 to load avgs above 250, i also disagree with)

    but, anyways, that's what he's saying. i found 2.4 to be much nicer in the one userland task that frequently shows off the VM - mp3 decoding under load. 2.4 never, ever skips, 2.2, with or without ESD, skipped frequently.

    YMMGV.

    --
    Indie rock lives! b-side!
    1. Re:if you don't want to read the article by Anonymous Coward · · Score: 0

      That skipping problem is a scheduler thing, not a virtual memory thing. 2.4 has a better scheduler than 2.2. We all know that already.

    2. Re:if you don't want to read the article by Jordy · · Score: 3, Informative

      VM load and system load are two very different things. You can have 250 processes blocked on a floppy disk read and run your load to 250, but try having a bunch of processes and the kernel compete for the last block of memory, especially networked apps where your network card driver all of a sudden needs contiguous blocks of memory in a heavily fragmented system and watch the difference between 2.2 and 2.4.

      One more thing to note is the VM != the scheduler. The scheduler is what hands out CPU time slices to programs and ensures your mp3 decoder doesn't skip if it's been using a lot of CPU for some period of time. The VM is what manages memory allocations and decides what to page out and page in to and from disk.

      Really, there should be very little difference between VMs unless you are in a low memory condition. Now there is some difference when you consider cached disk pages, but if you are just running a mp3 decoder, I don't think you are constantly re-executing it over and over and even if you were, as long as you aren't in a low memory situation, both VMs should do basically the same thing.

      --
      The world is neither black nor white nor good nor evil, only many shades of CowboyNeal.
  6. Most recent is 2.4.14-pre7, with many VM updates by Azog · · Score: 5, Informative

    If anyone out there has been having problems with 2.4 vm's (and there have been some problems) you should give 2.4.14-pre7 a try. Things have been moving fast on this front for a while now, but Linus thinks it's pretty much there now.

    In his words, "In fact, I'd _really_ like to know of any VM loads that show bad behaviour. If you have a pet peeve about the VM, now is the time to speak up. Because otherwise I think I'm done.

    This is an experimental patch to 2.4.13, and you shouldn't run it on an important machine, but the VM by all accounts is much improved.

    Even Alan Cox (who has been maintaining the older Rik Van Riel version of the VM in his -ac patches) agrees that the new VM is faster and simpler, and he plans to switch to it as soon as it is reliable enough to pass his stress testing. (which should be really soon, it seems.)

    (Yes, I spend an hour a day reading the kernel mailing list.)

    --
    Torrey Hoffman (Azog)
    "HTML needs a rant tag" - Alan Cox
  7. VM problems in early 2.4? by cdipierr · · Score: 2

    Anyone have a link to the problems aluded to in the article with early 2.4 kernels? I've got a machine at work that swaps quite a lot and is running 2.4.2 ... I know it's due for an upgrade, but I'd like to know a little more specifically what was wrong back then...Thanks.

    1. Re:VM problems in early 2.4? by Anonymous Coward · · Score: 0

      A machine running 2.4.2 is NOT due for an upgrade.

      Punish Your Machine! An upgrade would be a Tragedy >For You<.

    2. Re:VM problems in early 2.4? by Anonymous Coward · · Score: 0

      From my experience, 2.4.0 had a really bad VM, and used to swap a lot. I upgraded to 2.4.9, and it feels much better.

    3. Re:VM problems in early 2.4? by nholling · · Score: 1

      I am running 2.4.13 right now. I find that it doesn't swap as often as 2.4.{1-8}. The only reason I upgraded to 2.4.13 is because the swapping was unbearable. If I left my computer for supper, I would come back and the kernel would swap for a good 2 minutes before I was able to do anything.

  8. Makes me feel better... by green+pizza · · Score: 2

    ... about running 2.2.19 (on RedHat 6.2) on my dual PII server. Guess it's about time to upgrade, though. RedHat 7.2 is looking nice.

    How is bigmem support coming along? Is 2.4 still having problems with (32-bit) systems sporting more than 2 GB of ram?

    1. Re:Makes me feel better... by Anonymous Coward · · Score: 0

      Yep time to upgrade that 2.2.19 to 2.2.20 which came out today after being stuck in -pre for a year. Have fun!

    2. Re:Makes me feel better... by solve+for+x · · Score: 1

      How is bigmem support coming along? Is 2.4 still having problems with (32-bit) systems sporting more than 2GB of ram?

      I don't belive 32bit machines can address more than 2gb of ram, that's one of the reasons there are 64bit machines. At work we have an SGI Octane2 that does HDTV work, it has 6gb installed and can support 8gb. It's a 64bit machine and runs IRIX64 v.6.5.13, a 64bit OS.

    3. Re:Makes me feel better... by Chandon+Seldon · · Score: 1

      There are hacks to get 32 bit machines to support more than 2 gig of ram. Linux 2.4 seems to support up to 4gb.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    4. Re:Makes me feel better... by the_2nd_coming · · Score: 2

      a 64 bit machine should be able to address much much more memory than 8GB, I don't have a calculator infront of me but 2^64 is arounf a TB or 2 if I remember.

      --



      I am the Alpha and the Omega-3
    5. Re:Makes me feel better... by worldwideweber · · Score: 1

      Just a note...

      RedHat 7.2 ships with a modified linux 2.4.7,
      so you will not get the AVM (Andrea's VM).

      Also RH7.2 kernel still has the local root ptrace vulnerability, so you will need to upgrade to kernel-2.4.9 right away. RPMS are available at the usual places.

      Then you can feel good...

      --
      w o r l d w i d e w e b e r
    6. Re:Makes me feel better... by solve+for+x · · Score: 1

      a 64 bit machine should be able to address much much more memory than 8GB, I don't have a calculator infront of me but 2^64 is arounf a TB or 2 if I remember.

      AFIK, the Octane2 only supports 8gb of ram. Which I guess is ok since it only has support for 1-2 cpus.

      I would imagine that a 64bit machine and os can address at least 1tb, as the Origin 3000 can handle 1tb (1024gb) of ram per single image.

    7. Re:Makes me feel better... by Arrgh · · Score: 3, Informative

      Actually, 2^64 bytes is 1.84467E+19 bytes, or approx. 18.4 exabytes

    8. Re:Makes me feel better... by Arrgh · · Score: 1

      This DDJ article tells you how Intel started implementing 36-bit memory addressing way back in P5 (Pentium) days.

    9. Re:Makes me feel better... by Paul+Jakma · · Score: 1

      linux 2.4 supports up to 64GB on i386 using intel's PAE extensions which allow for 64GB of physical memory on i386.

      per process memory is still restricted to 32 bits addressable though, ie 4GB.

      --
      I use Friend/Foe + mod-point modifiers as a karma/reputation system.
    10. Re:Makes me feel better... by cicadia · · Score: 1, Redundant

      8 GB is only a 33-bit address space.

      Even 2 TB is only 41 bits.

      In theory, a 64-bit machine could handle 16,000 TB using only virtual memory, but there are a lot of reasons why you wouldn't be able to do that today.

      Aside from the fact that having that much virtual space would be nearly totally useless (and the fact that you couldn't buy that much memory if you wanted to :), you will always be restricted by the capacity of the motherboard. The motherboard manufacturers are not forced to lay 64 address lines on the board, just because the CPU uses a 64-bit address bus internally.

      I've been using 32-bit motherboards for a decade now, and I've never owned one which was physically capable of supporting 4GB of RAM.

      Also, is the machine really a 64-bit architecture, in all areas? "64-bit" may be referring to the width of the data bus, not the address bus, which may still be only 33 or 34 bits wide. Very much like the "128-bit" GPUs -- they get all of the performance advantages of moving 128 bits at a time, but have no need for a 128-bit address space.

      --
      Living better through chemicals
    11. Re:Makes me feel better... by Anonymous Coward · · Score: 1, Informative

      Actually, that's exactly 16 EB.

    12. Re:Makes me feel better... by Daengbo · · Score: 0

      Hehe -- he was using the hard drive manufacturer's spec directly off of the box -- hehe

    13. Re:Makes me feel better... by be-fan · · Score: 2

      A 32bit machine can address as much memory as it wants. First, 2^32 is 4GB, in theory Linux x86 programs should be able to address 3GB (since Linux uses 1GB for itself). Second, through the address window extensions (basically multiple banks of 4GB address spaces) the PPro series chips can address 64GB of RAM.

      --
      A deep unwavering belief is a sure sign you're missing something...
  9. Somebody help me out here by rho · · Score: 5, Interesting

    Quite often I get the feeling that Linux and BSD are doing quite a bit of "me-too"-isms in an attempt to catch up with the mainstream OSes--including MS, Apple and commercial Unixen.

    I read this story and wonder if I should still be getting the same feeling -- isn't a VM subsystem mostly a solved problem? Or am I reading this wrong, and this is merely tweaking and specialization?

    Since I'm no Alan Cox (I'm closer to Alan Thicke), I can't see the truth of the matter, but I get the feeling that we're doing a lot of walking in a tight circle on the path, while others have already left the forest.

    --
    Potato chips are a by-yourself food.
    1. Re:Somebody help me out here by DataPath · · Score: 3, Interesting

      It's hard to say if the VM subsystem has been completely reworked in the MS operating systems. It's all closed source. But I think it's a fair guess that NT and 9x had completely different VM subsystems, and in addition, that the Win2k VM subsystem is likely a complete rework of the NT 4 VM. I guess it's something that happens from time to time... someone thinks of a different way of doing things that changes how everything works together, and it makes something faster, something slower.

      --
      Inconceivable!
    2. Re:Somebody help me out here by rho · · Score: 1

      That makes sense, but it still sounds to me that the bickering between Rik and Andrea's VM is more fundamental.

      (which means little, since I only understand one word in three in a technical comparison between the two)

      --
      Potato chips are a by-yourself food.
    3. Re:Somebody help me out here by Anonymous Coward · · Score: 4, Informative

      Making a VM subsystem is easy enough. Making a very high performance one that works well in as many cases as possible is not so easy - most OSes have a myriad of tweakable parameters (including Linux /proc/ files and mysterious NT registry keys, for example) to handle all the different special cases - but it's still a bit of a black art, since bizarre things like what sectors on the HD hold the swapped-out memory can make a big difference (personally I have a separate swap harddrive, but that's because I'm running nasty finite element analysis problems).

      Also, the VM underlies a host of other bits of the OS, and as they change, so the VM has to change to accomodate them - for example, Linux's zero-copy unix domain sockets, or Linux's VFS layer.

      In short, no, VM design is not 100% solved.

    4. Re:Somebody help me out here by astrashe · · Score: 1

      I'd like to second this post.

      I have a vague sense that BSD and Solaris stand up better than linux under heavy loads, but I'm not sure why, if it's the VM, the scheduler, or the way the various systems interact.

      But the thing that I don't understand is the controversy surrounding the VM. I can understand controversey about whether to change horses in the middle of 2.4 -- it seems like there would be legitimate arguments on both sides.

      But isn't an optimal VM design something that's been clarified by research, or at least by the experiences of those who have built other kernels?

      I guess what I don't understand is why there would be a gap between Solaris and Linux, or BSD and Linux. Can't Linux just do it the BSD way? Is it an inertia thing, a matter of not wanting to break things?

      To ask the question another way, my big pet peeve with Windows 2K is that copying a big file (100's of megs) locks up the system. Solaris doesn't do that, Linux doesn't do that. Why does NT do it? Can't they look at the code in the Linux kernel and do something similar? I can't believe that the NT developers don't think it's a problem, I can't believe that they're not very smart guys. So what's the problem?

      BSD's missing some things that are hard to do without -- their java support isn't as good, and they don't have the device drivers that Linux has. It seems like it would be easier for linux to pick up what it lacks that BSD has, than the other way around.

    5. Re:Somebody help me out here by Ami+Ganguli · · Score: 4, Interesting

      Another factor is probably the tremendous range of hardware and workloads that Linux tries to handle. I don't think any other OS attempts to work well on watches and mainframes (and everything inbetween) while using the same code base.

      --
      It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
    6. Re:Somebody help me out here by DataPath · · Score: 3, Funny

      Well, things changed enough between the 2.2 series kernels and the 2.4 series kernels that a change in the way of thinking MIGHT make things better. Someone came up with a different way of doing things... The debate between which VM could be compared to the Vi vs. Emacs debate. The "which is better" debate isn't always an objective thing. You can't simply say Emacs is better or Vi is better. The question becomes "what direction do we want to take the kernel." No only that, but Linus was butting in a bit on Alan's territory, which added some heat to the debate. In the middle of a stable tree isn't necessarily the best place to add a completely new VM subsystem. Linus thought it was important enough to add now. Linus'll do anything to squeeze out a few more points on the Infinite Loops Per Second benchmark.

      --
      Inconceivable!
    7. Re:Somebody help me out here by Anonymous Coward · · Score: 0

      What device is supported in Linux that isn't in FreeBSD? Let's not forget who had working PCMCIA and USB in releases _years_ before Linux.

    8. Re:Somebody help me out here by Anonymous Coward · · Score: 0

      any real hardware like quad processor boxes isnt supported in BSD. its a toy OS. even network cards like Xircom and 3COMs give problems in BSD. and 3C990 ethernet cards arent supported at all.

    9. Re:Somebody help me out here by iabervon · · Score: 2, Interesting

      There's really no way to tell if the Windows VM is bad and is just being left as is, or is being changed, or is good, because you obviously can't run some other VM under the same load (even if you switch between Windows versions, it's a different load because you've got different system implementations and such).

      The design of a VM system also depends a lot on the rest of the system: the best VM is one that always has a page swapped in when you need it, and always has it in an acceptable part of memory. But which page is going to be needed next depends on what sorts of programs you're running, and tons of other factors. The VM system is trying to guess these, and there are some known heuristics for guessing, but there's no right solution for VMs in general.

      Apple has had a very different scheduling algorithm, which makes the problem totally different, and much easier: the applications not in front can be swapped out.

      I believe that, for a commercial UNIX, if you need swap, then you didn't put in enough RAM. If you could buy the system in the first place, you can afford more RAM. If the OS doesn't support enough RAM, get a version that does.

    10. Re:Somebody help me out here by rho · · Score: 2, Interesting
      Also, the VM underlies a host of other bits of the OS, and as they change, so the VM has to change to accomodate them - for example, Linux's zero-copy unix domain sockets, or Linux's VFS layer. In short, no, VM design is not 100% solved.

      That's interesting. I'm operating on my simplistic, naive notion that a VM is "the hard drive, where you dump pages when you're short on RAM or they get really stale". Thus, in my simple little world, the VM subsystem is affected the most by tweaks to the scheduler that swaps out pages. Is that where the major differences between the two VM schemes lie?

      If so, wouldn't it be a worthwhile effort to modularize that part out? (suddenly I see kernel hackers turning white as a sheet, gripping their chair arms in a fit of white-knuckled fear and loathing)

      I'm just a twink asking dumb questions...

      --
      Potato chips are a by-yourself food.
    11. Re:Somebody help me out here by Anonymous Coward · · Score: 0

      Actually, the VM subsystem is pretty much gone on watches. Who ever heard of a watch swapping?

    12. Re:Somebody help me out here by rho · · Score: 2
      I believe that, for a commercial UNIX, if you need swap, then you didn't put in enough RAM. If you could buy the system in the first place, you can afford more RAM. If the OS doesn't support enough RAM, get a version that does.

      This I agree with. It was different 5-10 years ago, when 128 megs of RAM would buy you a pretty nice Honda. Now that you get RAM with your Happy Meals, it's quite different.

      Following your logic, a VM will mostly be used in a workstation or desktop situation -- server applications aren't a real focal point. The scheduling is fundamentally different between a workstation (say, a hacker's main axe from which he runs Emacs and gdb, or a 3D animator's bench that runs nothing but Maya) and a desktop that is likely to have 4 or 5 apps open at once with constant switching between them.

      Isn't this another argument for modularity of the VM, or at least the scheduler? Or am I missing something more fundamental?

      --
      Potato chips are a by-yourself food.
    13. Re:Somebody help me out here by bluGill · · Score: 2

      Your missing something. 4gb of Ram is all many OSes will support. a 386 can address several terrabytes, but you need to use funky segmentation registers, and anyone who remembers Dos wants nothing to do with that. I don't know about the latest linux versions, but FreeBSD doesn't do it, and I'm sure early linux versions don't. i'd be surprized if current linux versions handle that much. (Note, 32 bit machines only, I'm sure 64 bit machines like alpha supprort much more)

      Of course if you need more than 4 gb of Ram you also need programs that can handle that, and I know of no such thing.

    14. Re:Somebody help me out here by anlprb · · Score: 1

      Another factor is probably the tremendous range of hardware and workloads that Linux tries to handle. I don't think any other OS attempts to work well on watches and mainframes (and everything inbetween) while using the same code base.


      It's called NetBSD.

      --

      One Token Ring to Rule them All, One Search Engine to Find Them, One WAN to bring them in, and TCP/IP Bind them...
    15. Re:Somebody help me out here by Anonymous Coward · · Score: 0

      Preach it.

    16. Re:Somebody help me out here by gorilla · · Score: 2
      Of course if you need more than 4 gb of Ram you also need programs that can handle that, and I know of no such thing.

      Not neccessarily. There is going to be more than one process in existance, each of which needs memory. If you have say 8 Gb of physical ram, you could have 2 programs, each one of which access 4 Gb.

      I remember using a system which didn't do SMP, each processor had it's own private memory. Basically once a process was created it either ran on that processor forever, or it would be swapped to a new processor. In this case obviously no single program could be allocated all the physical memory, but it was still useful.

    17. Re:Somebody help me out here by Alioth · · Score: 2, Funny

      I think it's the other way around. Both Linux and BSD had a VM long before the "mainstream" OSes had proper VMs. When Linux first came out, Windows 3.1 was mainstream. BSD was around before Windows 3.1.

      So really it's the other way around - the mainstream OSes are playing catch-up :-) (And I've had cause to need to find out about the gory details of NT4's VMM this week too).

    18. Re:Somebody help me out here by Anonymous Coward · · Score: 1, Informative

      Linux Kernel v2.4.13 High Memory Support

      CONFIG_NOHIGHMEM:

      Linux can use up to 64 Gigabytes of physical memory on x86 systems. However, the address space of 32-bit x86 processors is only 4 Gigabytes large. That means that, if you have a large amount of physical memory, not all of it can be permanently mapped by the kernel. The physical memory that's not permanently mapped is called high memory. If more than 4 Gigabytes is used then answer 64GB here. This selection turns Intel PAE (Physical Address Extension) mode on. PAE implements 3-level paging on IA32 processors. PAE is fully supported by Linux, PAE mode is implemented on all recent Intel processors (Pentium Pro and better). NOTE: If you say 64GB here, then the kernel will not boot on CPUs that don't support PAE.

    19. Re:Somebody help me out here by Azog · · Score: 5, Informative

      No, it isn't a "solved" problem. And the Linux VM subsystem is a surprisingly good one.

      Remember that benchmarking Linux against other OS'es back in the 2.2 kernel days showed that Linux was at least in the same ballpark as the best BSD and Microsoft OS'es, and the 2.4 kernels are even faster.

      Of course there are lots of well known algorithms and approaches - take an advanced computer science operating systems course to find out - but it's a really difficult problem and it changes all the time, because hardware and user level software changes all the time. It's a combination of an art and a science. Many, many things have to be balanced against each other, hopefully using self-tuning systems.

      An excellent VM for running one workload (say, a database) might suck horribly when running a different workload (like a huge multiprocess scientific computation).

      Here are some of the things that make VM complicated. Consider how other operating systems deal with these:

      - Virtual Memory. Many applications allocate far more memory than they ever use. People expect this to work. So almost all VM's allow programs to allocate much more memory than is actually available, even when including swap. That makes the next point more tricky:

      - Out Of Memory. What should happen when a system runs out of memory? How do you detect when you are out of memory? If you are going to start killing processes when the system runs out of memory, what process should be chosen to die?

      - Multiprocessors. List of memory pages need to be accessed safely by multiple processors at the same time. And this needs to happen quickly, even on systems with 64 or more processors.

      - Portability. The Linux VM runs on everything from 486'es with 8 MB of RAM and 100 MB of swap to 16-processor, 64 GB RAM RISC systems to IBM 390 mainframes. These systems tend to have different hardware support - the details of the hardware TLB's, MMUs, CPU cache layout, CPU cache coherency... it's amazing how portable Linux is.

      - Interaction of the VM with file systems. File systems use a lot of virtual memory, for buffering and cacheing. These parts of the system need to communicate with eachother and work together well to maximize performance. Linux supports a lot of filesystems and this gets complicated. For example, you may want to discard buffered file data while keeping metadata in memory when available memory is low.

      - Swap. When should a system start swapping out? How hard should it try to swap out? What algorithms should be used to determine what pages should be swapped out? When swapping in, how much read-ahead should you do? Read ahead on swap-in might speed things up, but not if you are short on memory and end up discarding other pages...

      - Accounting for memory usage is complicated by (among other things) memory-mapped files, memory shared between multiple processes, memory being used as buffers, and memory "locked" in to be non-swappable.

      - Keeping track of the state of each page of memory - is it dirty (modified)? Anonymous? Buffer? Discardable? Zeroed out for reuse? Shared? Locked? Some combination of the above?

      - Even worse: memory zones. On some multiprocessor systems, each processor may be able to access all the memory, but some (local RAM) may be reachable faster than others. The VM system should keep track of this and try to use faster memory when possible - but how do you balance that when the fast local RAM is getting full?

      - Interactions with networking and other drivers. Sometimes drivers need to allocate memory to do what they do. This can get very tricky when the system is low on memory. What if you need to allocate memory in a filesystem driver in order to write out data to the disk to make space because you are running out of memory? Meanwhile network packets are arriving and you need to allocate memory to store them. Sometimes hardware devices need to have multiple contiguous pages allocated for doing DMA, but if space is tight it can be very hard to find contiguous blocks of free memory.

      I'm not an expert on VM's either, but I've taken courses on operating system design and I read the kernel mailing list --- it is a hard, hard problem to make a fast, reliable, portable, feature-rich system.

      --
      Torrey Hoffman (Azog)
      "HTML needs a rant tag" - Alan Cox
    20. Re:Somebody help me out here by Ami+Ganguli · · Score: 2

      Really? Do you have URLs for that? I've never heard of the NetBSD watch or mainframe.

      --
      It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
    21. Re:Somebody help me out here by Paul+Jakma · · Score: 4, Informative

      I'll have a stab at this one... not all the details might be correct, but it should be close enough to get the idea..

      VM is virtual memory. really in this context it should be: VMM, ie Virtual Memory Management.

      VM refers to the fact that on modern processors memory addresses used by processes do not refer to the physical location. Rather the address is a virtual address, and the processor translates it by some means to the physical address.

      Eg, if a process accesses memory at 0xfe12a201, the physical memory accessed might be 0x0000c445. The former address is a 'virtual' address, the latter is physical.

      Typically:

      Processors work with memory in discrete chunks called pages. A page might be 4KB of memory (eg on intel), or some other value. Each page has a number, a frame number (PFN), that identifies it. The part of the processor that deals with handling virtual memory is the Memory Management Unit (MMU). The MMU and operating system together maintain a set of tables that describe which pages correspond to which virtual memory addresses. These tables are known as "Page Tables" or "PT", each entry in a page table is a "Page Table Entry" or "PTE". A page table is usually held within one or more set of physical pages. Each process has it's own set of page tables. The MMU interprets a part of the virtual address as an index:offset into the page tables. By looking up the PTE at offset x in the PG indexed by y, the MMU can determine which physical memory address corresponds to a virtual address (and more besides).

      eg:

      process accesses memory at 0xfe12a201.

      MMU interprets 0xfe12a as the index, and retrieves the 0xfe entry (PTE) in the page table, which tells it which PFN the virtual address refers to. it then uses 0x201 as the offset into that page and fetches/operates on the memory located there.

      ie:

      - virtual address -> split into index and offset.
      - index gives you the PTE.
      - the PTE holds the frame number of the physical page (and some other stuff)
      - the offset is the location within the frame

      So everytime, (well nearly everytime), a process accesses memory, the MMU translates the virtual address in the above way. To speed things the MMU maintains a cache of translations in a unit known as the Translation Lookaside Buffer (TLB), which holds recent translations. If the MMU finds a translation there, it doesn't need to do the full lookup process.

      so where does the operating system, or rather it's VMM, come in? well, a MMU might find that when it goes to look up an index, that no valid PT or PTE exists. This might indicate the process is trying to access memory that it hasnt been allocated, the MMU would then raise a fault and switch control to the operating systems VMM code, which would probably decide to end the process with a memory access violation, eg SEGV under Unix, and perhaps dump the processes memory to a file to aid debugging. (a core dump.)

      also, the PTE holds more than just the frame number. There are various extra bits which the MMU and operating system can use to indicate the status of a page.

      Eg, one bit may indicate whether the page is valid or not. an OS'es VMM could use this to make sure that the MMU faults control to the VMM next time the page is accessed, perhaps to allow the VMM to read the page from disk into memory (ie swap).

      Other bits may indicate permission. Eg whether a page may be read or written to. This can facilate shared libraries by allowing an OS to map the same physical pages into the page tables of several different processes. Also facilites copy on write, for optimising fork().

      The cpu's MMU may maintain an 'accessed' bit and a 'written' bit to indicate whether a page has been accessed/written to since the last time the bit was cleared, so that the operating system can do bookkeeping and make informed decisions about memory activity.

      etc.. etc..

      The VMM's job beyond interacting closely with the MMU is to juggle which pages are kept in memory and which are swapped out to disk. perhaps if the OS does paged buffering, the VMM may also need to decide which buffer pages need to be written to disk (or read in pages to buffers). there are many ways it could do this, eg by maintaining lists of how and how often pages are used and make decisions about what to write out/read in based on that.

      it is in these intricate details that the various 2.4 VMMs differ.

      NB: details above are very architecture specific. different processors will have different page table layouts, different PTE status bits, etc.. eg on intel the virtual address is actually

      directory index : page table index: offset
      11 bits : 9 bits : 12 bits

      the directory index is an index to a directory of page table numbers, which saves on the amount of memory you need to hold a page table. the upshot being that the fine details of how paging works are processor specific.

      More NB's:

      page tables are process specific, switching between processes usually requires loading in the (set of) page tables of the new process. it also requires clearing out/invalidating all the existing TLB entries. this all takes time.

      Intel have an extension to their paged addressing, PAE, which allows for 36 bit physical addresses. I'm not sure, but i think it does this by splitting the directory index into 2 indexes, and increasing the PTE size to 36bits. (uses 64bits of memory though.)

      finally... there is plenty of reference materical on the web, so research for yourself cause i'm probably wrong in a lot of places. ah well.. :)

      --
      I use Friend/Foe + mod-point modifiers as a karma/reputation system.
    22. Re:Somebody help me out here by larien · · Score: 2
      Using the same code base is part of the problem under linux. Linus's aim is to keep linux performance up on old hardware like 386/486 systems (it's his baby and that's his choice). However, for linux to make a killing in the server field, it needs to be able to handle >2GB RAM and >4CPUs well. From what I've read, keeping linux running on old (and, let's face it, obsolete) hardware prevents it running as well as it could on these high powered systems.

      At this point we enter into arguments about "what is most important", but keeping the same code base for disparate functions is not an ideal situation.

    23. Re:Somebody help me out here by benedict · · Score: 2

      NetBSD runs on a digital camera, though I can't find a reference for this at the moment.

      --
      Ben "You have your mind on computers, it seems."
    24. Re:Somebody help me out here by benedict · · Score: 2

      It's hard to make a VM all that modular, of necessity it's closely integrated with the rest of the system.

      --
      Ben "You have your mind on computers, it seems."
    25. Re:Somebody help me out here by Ian+Bicking · · Score: 2
      In a traditional kernel -- which is all Linus aspires to for the Linux kernel -- everything is basically a solved problem. There's lots of tweaking, and testing, and technical debates -- but there's really not anything all that interesting.

      It is somewhat interesting, because the kernel is the foundation for everything else. Well, libc is nearly as basic. So what happens at that low level effects everything, whether you run KDE or Gnome or just the command line.

    26. Re:Somebody help me out here by Bun · · Score: 1

      Who ever heard of a watch swapping?

      Haven't you ever heard of the SWATCH? ...I kill me...

      --
      "Anyone that has ever gotten an idea based on any of my work and done something better with it-good for you."--J.Carmack
    27. Re:Somebody help me out here by Paul+Komarek · · Score: 2

      "But I think it's a fair guess that NT and 9x had completely different VM subsystems..."

      I believe these operating systems have completely different *kernels*. The chance of them having the same VM subsystems seems slim.

      -Paul Komarek

    28. Re:Somebody help me out here by DataPath · · Score: 1

      sometimes it's hard to say with MS
      that's why I said it's a fair guess.
      :)

      --
      Inconceivable!
    29. Re:Somebody help me out here by be-fan · · Score: 2

      Actually, MS does release documentation, you know. Check out any good OS book, they have fairly detailed info about the MS VM (try Modern Operating Systems by the MINIX fellow).

      --
      A deep unwavering belief is a sure sign you're missing something...
    30. Re:Somebody help me out here by castlan · · Score: 1

      "Using the same code base is part of the problem under linux. "
      Portability is a problem? I find it to be one of the greater virtues that make Linux worthwhile. While Microsoft couldn't financially justify supporting multiple architechtures, portability was one of the original specifications of Windows NT. It was written for MIPS and then ported to x86 just to prove it's portability. UNIX wouldn't have ever been more than a hobby for some guy who had too much time on his hands, a spare minicomputer and an affinity for Spacewar, except that it was highly portable and thus very important to harness synergies in computing technology from different hardware. If it weren't for using the same code base, there would be no GNU project for a unified system that could run under discrete UNIXes from differnt vendors. This "same code base" is the very nature of Linux. I might as well say that my consciousness, my self awareness, is part of my problem.

      If performance is good on old hardware like 386/486 systems, wouldn't that imply better performance on more capable hardware? Running on a Pentium 4 does not behave the same as running on a 386 clocked to 1400 MHz. The advances of the newer architectures are recognized and utilized, while the kernel remains performant on 386 cpus.

      Linux can currently support more than 2GB the last I heard. As for supporting multiple CPUs, supporting any given CPU arcitecture seems to be orthogonal. Would removing 386 support bring us closer to the goal of supporting 8 CPUs? How about removing PIII support so that 8 CPU PPro systems can be more fully supported?

      I can't face the "fact" that old hardware is obsolete, when "old" is so poorly defined. If it is not useful when your goal is 3d rendered multiplayer combat environments, that does not define "obsolete." Obsolescence is the quality of no longer being able to achieve ones goals. If a bicycle was useful last week, does the existence of a helicopter remder it obsolete?

      More directly, is a Motorola 68k obsolete? Not if the Palm is a useful PDA. A 386 is better than a Pentium if heat is a problem. Yes, you feel this this is a disparate function from your cutting edge desktop. As I see it, there is little need to argue over which is more important, as both needs can be fullfilled by the same codebase. I will strongly argue that despite the relative importance of each system, both do have significant importance, so such divisions are only damaging to to Kernel. There are many advantages to flexibility, scalability and portability. Instead of ending up with 3 disparate projects, none of which are useful on a fourth situation, there can be 1 project which flexibly fits the needs of multiple situations. The flexibility makes future projects more feasible with less fruitless groundwork, as the infrastructure is already present.

      I would appreciate any pointers to what you read that suggests that support for previous systems bars support for future systems. This seems to me to be a most egregious embodiment of FUD that exploits technology consumers via artificial obsolecsence. From my perspective, such tripe only vilifies Intel and evidences that their monopoly may be ripe for government intervention if they continue exploiting the vulnerability of naive consumers who believe that they need the latest technology for sucessful wordprocessing. Insomuch as this nonsense is an embodiment of vestigal elitism from high powered system administrators, this is a luxury that they won't be enjoying for much longer. SGI Irix is what you want. Notice how SGI, Sun, HPCompaqDigital and especially IBM have embraced Linux, much as a drowning man has embraced the waterwings from a kiddie-pool. That Linux even has the capability to scale up anywhere near the enterprise class should be more than enough to burst your bubble, as from some points of view, (How much commodity hardware is on the top 500 supercomputer list?) the superior concept of "high powered systems" can be considered to be "obsolete." As least, it is evident that your high powered systems are not too good to share a common codebase with the lowly 386.

    31. Re:Somebody help me out here by rho · · Score: 2

      This was helpful, as was the long post below that had a fantastic overview of the process behind a VM. Even if it wasn't correct, it helped me form a mental picture of what was happening.

      It sounds, though, that the major source of complication is the multi-purpose nature of the kernel: scalability problems, for want of a better term. A database server is different from a desktop from a mainframe from a PocketPC.

      Is it worth the effort to modularize the VM subsystem? If not completely modularized, enough parameters moved to configurable settings in /proc files where these decisions can be made more sanely for different environments? (this may be the case now -- I have no idea, since my customization needs have never met that level of granularity)

      Thus, RedHat Server has a different VM than RedHat Desktop, and Debian users can apt-get a configuration for their database server.

      If a VM is hard to engineer because of the different ways it is used, then engineer it to be flexible for different uses. Not many bridges are built to support pedestrian, automobile and train traffic all at the same time (and still meet community standards for visual appeal).

      --
      Potato chips are a by-yourself food.
    32. Re:Somebody help me out here by Ami+Ganguli · · Score: 2

      Wow, you really feel strongly about this :-).

      Anyway, I actually agree with you for the most part. But while supporting different architectures doesn't seem to be a problem, supporing different sizes of system well is difficult. The same algorithm that's optimal for scheduling five runable processes on two processors probably won't be optimal for scheduling 5000 processes on twenty processors.

      Having said that, Linus has been pretty good in insisting that algorithms should be generic and that people wanting extreme scalability can't sacrifice low-end performance. When somebody with authority forces you to think hard about a problem until you find the answer, often the answer actually appears.

      It's worked really well so far, but it's not clear if it will always work.

      --
      It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
    33. Re:Somebody help me out here by castlan · · Score: 1

      Well, Linux was written for the i386. Now if you want to run a 64 processor cache-coherent unified memory architecture system, that would be great if there was free software to operate it. But if you can get your hands on a beast of a system, then you can surely afford a support contract for IRIX, and perhaps a dedicated team that runs your system. If Linux is disconnected from its base, then Sun, SGI et al will have to fight it for a thinner slice of their high end pie. But then what will the less affluent i386 owners run? I sure hope that they didn't misplace their original Windows 3.1 disks. And I certainly hope they don't find a bug, or need any other support.

      The free software community came from humans to help humanity, when the Big Iron computer makers bound them with legal red tape and financial restraints. When Unix was no longer freely available, it was important to develop something new (GNU). GNU is not Unix so that the common man can use it, while those who would usurp it from humanity are bound by the very same legal tape that necessitated its creation.

      By virtue of the corporations being comprised of memers of human society, they have a right to use this GNU software. But the software must remain accessible to the lowly 386 owner who is an equal member of society. If x386 capable Linux no will no longer work with 20 processor systems, then there is always Solaris, which should have offerings well within their budget.

      Thanks you for your ginger response to my heavy handed post. I do realise that Linux could be forked and the historic Linux would be theoretically unharmed. I am comforted by the historical precident of lower end systems being in the majority. The relatively few large scale systems are free to make their modifications, but they have yet been unable to outweigh the modest majority in the Free Software system of values.

      they've worked really well so far, but it's not clear if it will always work.

      :D Seriously, I'm not worried. To each their own!

  10. Would also be interesting... by forgoil · · Score: 2

    to know how XPs kernel would do, and how the different *BSDs, QNX, whatever you have under your sleave.

    Heck, know what would be the best? A pluggable kernel system, where anyone could switch WM. Hmm, hurd? Anyways, it's nice to see 2.4 making progress, but we all kinda guessed that.

    After all, if we know what is "best", then people could try to break that and become even better. And who could loose from that?;)

    1. Re:Would also be interesting... by haruharaharu · · Score: 2, Informative

      Heck, know what would be the best? A pluggable kernel system, where anyone could switch WM.

      That's been suggested for Linux before, and the general feeling was that that would be so complicated (the memory manager changes touched most files in the kernel) and hard to test, that it would basically be a nightmare.

      --
      Reboot macht Frei.
    2. Re:Would also be interesting... by Anonymous Coward · · Score: 0

      Why is this +2? It makes about as much sense as a jonkatz story. Guy must be moderating up his own posts with a duplicate account (like all good karma whores)

    3. Re:Would also be interesting... by Anonymous Coward · · Score: 0

      dude he's a Troll with +2 to Post

    4. Re:Would also be interesting... by ethereal · · Score: 1

      That's not flamebait, it's practically from the lips of Alan Cox himself. But don't let that interrupt your rush to mis-moderate...

      --

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

    5. Re:Would also be interesting... by TheAwfulTruth · · Score: 3, Insightful

      Heh, If I ever said anything like this at work I'd get a "Are you afraid to code" out of my boss...

      Systems are getting more complex and demands on them get more complex. People have to plan harder and think harder to keep up. It's time to step up to the plate or go home. Years ago Linux didn't need a VM that worked with 4 way SMP and 2 Gig of ram. Today it does.

      Claiming that modularity is (I'm paraphrasing) "too hard" comes off more as a cop-out than a reason. If it's hard, do a better job at it. I don't think anyone is claiming that the VM should only take a weekend to do... They just want it done and done right. The argument FOR modularity put forth above is a solid one. Whatever planning/archeteting/coding/testing and debugging that takes. Just do it[tm].

      --
      Contrary to popular belief, coding is not all free blow-jobs and beer. Those things cost MONEY!
    6. Re:Would also be interesting... by Anonymous Coward · · Score: 0

      TheAwfulTruth's Boss: "Hey, I need you to whip up a function that will determine if a piece of code will terminate by, oh lets say next week?"

      TheAwfulTruth: "Gee boss, I'm not sure that's possible."

      TheAwfulTruth's Boss: "What, are you afraid to code?"

    7. Re:Would also be interesting... by haruharaharu · · Score: 3, Insightful

      Claiming that modularity is (I'm paraphrasing) "too hard" comes off more as a cop-out than a reason

      Yes, let's make a fundamental, pervasive, part of the kernel hot pluggable, introduce tons of potential bugs and incompatibilities and create lots of work, all for questionable benefit. Engineering involves a series of tradeoffs and, in this case, most people see the pain as being too great for the potential payoff.

      But, if you still want to, go right ahead. That's one of the cool thing about Linux: if nobody else wants to do it, you still can.

      --
      Reboot macht Frei.
    8. Re:Would also be interesting... by rekoil · · Score: 1

      An alternative would be to include the source for both VM systems in the kernel, and have the compiler choose which on to use in "make config" just like any other tunable compiler option. Has this option been discussed on the kernel list at all?

    9. Re:Would also be interesting... by forgoil · · Score: 2

      Especially if you could plug the same VM into a BSD kernel or whatever you might want/make. I'd like to see a more modular way of building OSes, so that we can get a more dynamic way of doing things and not lock everything in the Linux kernel and go "if you want it changed, change it", is if everyone only codes kernels...

      The pitfall would probably be how to define the APIs and how to handle their aging...

    10. Re:Would also be interesting... by OwnedByTwoCats · · Score: 1
      Heck, know what would be the best? A pluggable kernel system, where anyone could switch WM


      You mean, like Mach? Or MacOS X?

    11. Re:Would also be interesting... by Anonymous Coward · · Score: 0

      Yes, let's make a fundamental, pervasive, part of the kernel hot pluggable, introduce tons of potential bugs and incompatibilities and create lots of work, all for questionable benefit. Engineering involves a series of tradeoffs and, in this case, most people see the pain as being too great for the potential payoff.

      I think that'd be great. It'd give another us another thing to do to unsuspecting newbies.

      "Okay, just type this:"
      # rmmod andrea-vm.o
      # rmmod rik-vm.o

    12. Re:Would also be interesting... by benedict · · Score: 2

      Like everything else in computing, modularity comes at a price.

      --
      Ben "You have your mind on computers, it seems."
    13. Re:Would also be interesting... by benedict · · Score: 1

      Hahaha.

      Sure, just try it with Mac OS X. Let me know how far you get.

      --
      Ben "You have your mind on computers, it seems."
    14. Re:Would also be interesting... by cgleba · · Score: 1

      If I remeber correctly Solaris does that. They have "VM" and "Scheduler" modules that link at boot time. I agree that it would be VERY costly and tough to do that in Linux however it is not impossible. Rather the loadable object files, VM and scheduler options in "make config" would be very sweet (especially for those who compile the kernel for special-purposes that need for instance a real-time scheduler or specialized VM). I'm not technical enough to pursue this, however I would be very interested in a cost analysis of this. . . .

  11. Did someone think otherwise? by Anonymous Coward · · Score: 5, Informative

    I don't think most people really thought the 2.4 VM was a worse performer than 2.2, especially under normal load, and in recent kernels even under high loads.

    However, one thing that was not evaluated in this writeup at all was stability, especially on big boxes (as in SMP and >1GB) and heavy workloads. This is where neither VM really seems to be able to hang in there.

    I admin seven such boxes that all have 2 or 4 CPUs, and 2 of 4GB of RAM, and during heavy jobs get hit pretty hard. These things run 100% rock solid with 2.2.19, I've achieved uptimes of greated than six months on all boxes simultaneaously. Basically, reboots are for kernel upgraded, nothing more.

    With 2.4.x, I'm happy to get a few weeks, and sometimes much less. The machine practically always dies during heavy VM load. It has kept me from upgrading to 2.4 for several months now.

    The real kicker, when 2.4 is running correctly, my jobs run as much as 35-50% faster than with 2.2, especially on the 4 CPU server, so I really wish the VM was stable enough to allow me to move.

    Anyway, I'm sure it will get there sometime.

    BTW, before people write about how they're 2.4 boxes have super long uptimes let me say that I too have some 2.4 based systems that have been up since 2.4.2 was released, but these machines are either single CPU, or SMP but with 512MB of RAM. 2.4 seems to run quite well in this case.

    1. Re:Did someone think otherwise? by MentlFlos · · Score: 2, Interesting
      I have two dual boxes with 1g each in them and they seem to take whatever I throw at them. I have yet to have any panics or what-not. (So you know what kind of loads I'm talking about, one box runs 3 CS servers with 3 HLTV proxies and the other runs mysql, apache (slash), hlstats for the servers and is my desktop box. Both run DNS and RC5 and have 2.4.10 or greater). Nothing too bad, but not idle either). I have no complaints about the kernels yet.

      Now getting ext3 in the tree is something I would like :)

    2. Re:Did someone think otherwise? by Anonymous Coward · · Score: 1, Interesting

      hmm..i have hard lockups like the guy described with 2.2.19 on a single CPU 733MHz P-III system with 256MB of RAM and 2 Gigs of swap. im running vmware with 5 OSes running simultaneously under high loads and it typically locks up after 3-4 weeks.

    3. Re:Did someone think otherwise? by the_2nd_coming · · Score: 1, Offtopic

      I don't think most people really thought the 2.4 VM was a worse performer than 2.2, especially under normal load, and in recent kernels even under high loads.

      well, I would like to say I hate the 2.4 VM. my Suse box was chuging along, and not doing anything at all, I go to the store realy quick to grab some stuff for my wife and when I return the machine is grinding like mad. I had no processes running no application up but the box was slow as hell. the light on the HDD would not turn off at all. I had to do a hard boot even after I tried to kill X since the action was taking forever.

      I have used linux for 3 years now and I have never had to hard boot it, at least not in a situation where I didn't mess up the box :-)
      3 years and one hard boot is pretty good, but it should not happen at all. I truly think that the 2.4 VM sucks and I am realy hoping that the 2.4.14pre7 VM is the goldenchild......please Linus, for 2.5 make sure the VM works before you put out 2.6, even if it takes you 2 years....oh wait :-)

      --



      I am the Alpha and the Omega-3
    4. Re:Did someone think otherwise? by Anonymous Coward · · Score: 0

      You should notify either Linus or the LinuxKernelMailingList asap! See
      http://slashdot.org/comments.pl?sid=23322&cid=2513 313

    5. Re:Did someone think otherwise? by Anonymous Coward · · Score: 0

      ten bucks say it is suses.

    6. Re:Did someone think otherwise? by Anonymous Coward · · Score: 0

      and explain how that could be? unless they manualy replaced the VM in thier kernel I don't see how this would happen.

    7. Re:Did someone think otherwise? by Anonymous Coward · · Score: 0

      The binary 3d drivers from NVidia "NVdriver" will do that.

      Bitch to NVidia, or stop using thier drivers. Only then will Linus and Alan help you.

    8. Re:Did someone think otherwise? by Angst+Badger · · Score: 2
      However, one thing that was not evaluated in this writeup at all was stability, especially on big boxes (as in SMP and >1GB) and heavy workloads. This is where neither VM really seems to be able to hang in there.

      This is a pretty significant issue to me, too, because I admin a dual processor box with 1GB running MySQL under the 2.4.2 kernel, and it bogs down under relatively light loads, swapping like mad, and eventually righting itself if given enough time. Once news of the VM problems came to my attention, I started looking into it, and I confess I'm stumped. There's no reason I can't roll back to 2.2.19 or forward to whatever the 2.4.x kernel du jour is. At this point, I'm inclined to go back to 2.2.19 for the time being because there were no problems there, but I'd certainly rather go forward if I can.

      Either way, I need to fix it soon, because the database in question drives a busy commercial website, and my boss is quite legitimately upset about the problem.

      --
      Proud member of the Weirdo-American community.
    9. Re:Did someone think otherwise? by Laplace · · Score: 2

      Next time it happens (and it will), do a ps -al (or some shit command like that) and you will find among the list of processes

      sort
      frcode

      This is some shitty daily cron process that is run by SuSE to somehow optimize disk usage. Or something like that. It's one of the annoying things that SuSE does, but doesn't document that well. The first time it happened to me I thought I had been rooted.

      --
      The middle mind speaks!
  12. why not more than one? by Karmageddon · · Score: 4, Insightful
    when I learned computer science--which I admit was a long time ago, but that means the "gurus" have all had plenty of time to catch up--they taught us that if you obeyed the principles of modularity that you could have more than one implementation of something and use what was appropriate for the particulars of a given situation....

    ...so why does linux have 1 VM? it seems that 2 of them exist, and the BSD's have more... guys, "gimme a hunk" and "page fault" aren't exactly rocket science anymore, particularly with hardware support... the fact that there is room to make a big deal out of this is the problem, not the VMs.

    1. Re:why not more than one? by Anonymous Coward · · Score: 1, Insightful
    2. Re:why not more than one? by groomed · · Score: 1

      "write some code, kid" --ESR

    3. Re:why not more than one? by Error27 · · Score: 2

      What good is it to have more than one VM? Honestly, just because something could be made into a feature doesn't mean that it should be.

      I guess I have heard about other operating systems where you could choose between vm's but that doesn't make much sense to me. Did one of the vm's fail under certain cases? If so then it should have been fixed instead of just patching over the problem.

      To me it makes more sense to just have one vm that works and is well understood.

    4. Re:why not more than one? by be-fan · · Score: 2

      Computer theory is nice and all, but I wonder how often reality impinges on the nice though processes of theorists. The VM is an awefully low level piece of code. Almost everything else in the system touches the VM. Its just really hard to make something like that a module that can be swapped out. It has been done, but its very complex. Even in microkernels the VM is usually implemented partly in the kernel, with only the pager (the thing that decides what to page out) being a modular component.

      --
      A deep unwavering belief is a sure sign you're missing something...
  13. Good Linux VM article by MrResistor · · Score: 2, Redundant
    Here is an excellent article I found linked on rootprompt yesterday that goes into considerable detail about the 2.4 VM (or VMs, as the case may be).

    --
    Under capitalism man exploits man. Under communism it's the other way around.
    1. Re:Good Linux VM article by Anonymous Coward · · Score: 0

      an excellent article I found linked on rootprompt yesterday

      So you're not an avid slashdot reader it seems. Shame on you.

  14. VM Trouble and Linux 2.5 by PineHall · · Score: 2, Insightful

    I am glad to see the 2.4 VMs doing so well. I assume that Linus is not at all satisfied with the VM code and that is the reason the 2.5 branch is not started. Hopefully it will start soon when the VM trouble is solved!

  15. Linux is not that modular by Carnage4Life · · Score: 3, Informative

    so why does linux have 1 VM? it seems that 2 of them exist, and the BSD's have more... guys, "gimme a hunk" and "page fault" aren't exactly rocket science anymore, particularly with hardware support... the fact that there is room to make a big deal out of this is the problem, not the VMs.

    If Linux was a microkernel I'm pretty sure this would be possible but from what I've seen of the Linux kernel code and from some discussions on the linux kernel mailing list, the virtual memory code is too entrenched in various parts of the code to be #ifdefed around with any sort of ease.

    1. Re:Linux is not that modular by maxpublic · · Score: 1

      This is precisely the case. Unlike Internet Explorer in the Windows Shell, you just can't pull out the VM with ease and still leave everything else intact. This is because Linux is a monolithic kernel with many things tightly interwoven for performance, the VM among them. You can't stick it into a module and choose it at compile time.

      Or rather, you could but you'd have to rewrite large chunks of the kernel to do so. And debug it. And make some other things less efficient. Etc. But as someone said, this is Linux and that means that anyone is welcome to try....

      Max

      --
      My god carries a hammer. Your god died nailed to a tree. Any questions?
  16. This is all well and good by duffbeer703 · · Score: 4, Interesting

    But the fact remains is that this VM holy war should have been resolved in the 2.3 series of kernels.

    The number of major problems and architectural changes that are being made to the supposedly 'stable' branch of Linux kernel is really run amok.

    I'm sure there's plenty of outrages to come as bad bugs are found in the volume manager and other new elements of 2.4

    --
    Conformity is the jailer of freedom and enemy of growth. -JFK
    1. Re:This is all well and good by Anonymous Coward · · Score: 1, Insightful

      Unfortunately, it wasn't resolved. It's only getting close now because Linus made the "outrageous" move of introducing a new one in the middle of a stable cycle. Whether you agreed with that move or not, it's working out brilliantly. Hopefully after this stabilizes a bit, LVM and devfs, both rat's nests of bugs, can be the subjects of the next holy war.

    2. Re:This is all well and good by sydb · · Score: 2

      I think we've been over this ground before.

      The reason Linus released 2.4 as prematurely as he did was to get it tested because all the potential testers were shying away from a development kernel. I wouldn't have felt comfortable running it myself.

      One possible solution is to have a testing kernel. Then we'd all be happy, well, at least I would.

      --
      Yours Sincerely, Michael.
  17. The one major difference by matty · · Score: 5, Insightful

    ...is that Linux's warts are fully out in the open for all to see. Microsoft would never admit to such failings openly, even though anyone who has used Windows extensively is painfully aware of them.

    And it's been my experience that you don't hear, "Linux never crashes" that much anymore. At least I don't say it anymore, whereas I used to. I would still say that a properly configured Linux box is more stable than any Windows box, but I've had my share of lockups. (on the desktop anyway. You'll notice my server has been up for 140+ days. The last reboot was when the power supply died [it's a patched together P166] which interrupted 243 days uptime)

    All the mailing lists are public, and all of Linux's problems are there for anyone to see. This allows people to make truly informed decisions about which version of Linux to use, or whether to even use it at all. (Yes, of course these things are also true of *BSD) The current issues are why I still run 2.2.19 on my servers, since none of them get anywhere near enough load to need the newer VM's. "Stable" is definitely a relative term.

    1. Re:The one major difference by rabtech · · Score: 2

      Apparently you've never heard about Microsoft's news servers. The morons there are just as vocal as the ones here.

      (That was a joke, btw)

      --
      Natural != (nontoxic || beneficial)
    2. Re:The one major difference by Tony-A · · Score: 1

      The first stage is to prove that it can be stable, doing all sorts of misconfigurations and reconfigurations without rebooting. The second stage is to use a reboot to verify that the init scripts function as intended while you still have a vague memory of what you changed. After a long power outage is not the time to find out you left something out of an init script :(

    3. Re:The one major difference by Shanep · · Score: 0, Flamebait

      Speaking of *BSD... If Linux continues to have a development VM system in the stable kernel, causing it to lock up hard, the people who came to Linux to get away from that kind of crap in the first place, (who are now more Unix aware) might move to something truely stable like FreeBSD.

      Of course, according to Linus, there is nothing interesting in FreeBSD. ; ) Maybe he ought to steal Free's VM, or maybe Red Hat will do that for him.

      Software RAID in 2.4 is crap and now the VM... more and more I want to move completely the FreeBSD and hopefully soon get some OSX happening too.

      --
      War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
    4. Re:The one major difference by Anonymous Coward · · Score: 0

      Microsoft comparison .. again. Linux is a microkernel, ran on a GNU system, and it works entirely different from what people are used to from a Windows system. So quit making those stupid comparisons! People have figured out by now that windows likes to crash, they don't need people like you yelling that to them every 10 days, screaming linux is better man get linux!

  18. We know by wiredog · · Score: 3, Informative

    The link is in this article.

  19. Copying Large Files - Re:Somebody help me out here by TechnoLust · · Score: 1

    Win2k locks up when you copy large files? I haven't seen this problem. I have a P4 system with 256 MB RAM, I have Win2k and Mandrake 8.0 dual boot. I have the ISOs for Mandrake on the Win2k partition and I copied them to another folder with no problem. These are 650 MB files. I believe that when you copy a file 2k reads a chunk and then writes it, then repeats. I wouldn't make sense to try to copy the entire contents into memory then write it. Besides there may not be enough concurrent sectors to store it, so it would have to break it into chuncks anyway. Anyway, I think if this were a widespread problem we would have seen a patch a while back. just my opinion.

    --
    "Da ist ein Technölüst in mein Unterpanten!"
  20. Windows users... by Roadmaster · · Score: 1
    Windows users don't find BSOD's interesting. They happen all day long. Why should we? :)


    Seriously, even I have seen Linux die.. it would have been interesting if it kept happening, but it clearly states it was a one-time event.

  21. The Unreal Tournament test by Miles · · Score: 3, Interesting

    Just a possibly interesting data point. I played Unreal Tournament with 2.4.12-ac5 and 2.4.10 (both from Debian). 2.4.10 always seems to work fine for extended periods of Lan play (as both a client and server), whereas the 2.4.12-ac5 choked after a few games--the swap ended up being nearly all used up.
    Of course, this was hardly a scientific test, but I think I'll stick to something proven for now.

    1. Re:The Unreal Tournament test by slashdot_commentator · · Score: 1

      2.4.10 uses the new Andrea Arcangeli VM. In 2.4.12-ac5, Alan Cox kept the Rik van Riel VM. RVM has been having problems with Out-Of-Memory situations, where RAM needed exceeded physical RAM available, so that may explain your situation.

      Try getting a non-AC 2.4.13 kernel, perhaps add a patch or two, and see what happens. You also may need more RAM in your machine.

      --
      There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
  22. 2.4.13 VM by sfe_software · · Score: 5, Informative

    I can't speak for the differences between the two VM layers in the most recent versions of each, but I went from 2.4.7-2 (RH Roswell Beta stock kernel) to 2.4.13 (+ext3 patch), and I've noticed a serious improvement.

    My notebook has 192 megs and 256 meg swap partition. I run Mozilla constantly (which seems to constantly grow in memory usage as the days pass). Prior to the upgrade (2.4.7-2, recompiled without the debugging options RH had on by default), swapping was ungodly slow. Switching between Mozilla and an xterm would literally take a few seconds waiting for the window to draw on the screen. Even switching between tabs in Moz was slow.

    Since going to 2.4.13 with ext3 patch, I've noticed a serious improvement in this behavior. Under the same conditions (between 20 and 50 megs swap usage), switching between windows is quite fast. I don't know if it's faster at swapping per se, or if it's just swapping different things (eg, more intelligently deciding what to swap out), but for me it "seems" much faster for day-to-day usage.

    I haven't yet tested in a server environment... but for desktop usage, 2.4.13 rocks. Can't wait for 2.4.14, to see if any noticable improvements are added...

    Though it will be a non-issue once I add another 128 megs to this machine, it's nice to see such great VM performance under (relatively) low memory conditions.

    --
    NGWave - Fast Sound Editor for Windows
    1. Re:2.4.13 VM by be-fan · · Score: 2

      Actually, with 2.4.14-pre6 (I'm running the XFS CVS code with the preempt patches) Linus has apperently declared the VM fixed and dared people to break it. I've been using the kernel quite heavily for a few days, and its been great. I don't know how much of an improvement it is over 2.4.13, though. I had 2.4.13 for a total of a day before XFS CVS updated to the 2.4.14-pre series. (Linus releases pre kernels at an ungodly rate, and the XFS team manages to keep up.)

      --
      A deep unwavering belief is a sure sign you're missing something...
  23. YMMVGV by Tailhook · · Score: 2, Interesting

    Your observations run counter to the continuous stream of reports of high latency in 2.4 found in the linux kernel mailing list. Specifically, skipping mp3 playing is the canonical report. 2.2 is often cited as being the less latent of the two.

    I don't claim you're wrong. I point this out only to illustrate the subjectivity and lack of real data involved in these anecdotal reports. At the very least, the author has attempted to produce hard data on the matter.

    Linus obviously thought poorly enough to of original 2.4 VM to space the mess.

    --
    Maw! Fire up the karma burner!
  24. big file lockup by jon_c · · Score: 2

    I remember reading about a problem with sblive and via chipsets having timing problems, at one point this caused file corruption as well!

    Until SP2 (I believe) Win2k did not natively support ATA100 drives, so many boards either provided their own, or in the case of ATA-RAID controls the drivers we're shown to the system as SCSI. In my experience the native ATA-100 or 3rd party ATA-100 drivers do not perform as well as their SCSI counterparts. long shortly short, if you have a ATA-RAID disk, use the SCSI driver provided from the manufacture... Also if it's a HighPoint(tm) controller don't use the latest version of their drivers, they're is an issue with it where the mouse jumps and the sound card skips.

    If you do have a via board, you may want to check out viahardware.com, they have some excellent FAQ's as well as all the latest drivers.

    At any rate I am 99% sure it has something to do with your hardware, bios or drivers not Win2k specifically.

    late,
    -Jon

    --
    this is my sig.
    1. Re:big file lockup by astrashe · · Score: 1

      I have a Dell that came with W2K preinstalled. I've patched it, but I haven't done any major tweaking. So I've always assumed it was reasonably well configured.

      Maybe I'm doing something stupid...

    2. Re:big file lockup by FooDog · · Score: 1

      Oh definitely check out viahardware.com. I have an Athlon system at home that uses the Via chipset and I had all kinds of problems with games and video locking up because of a compatibility problem between the SB Live! and that chipset. They finally nailed down the problem and MOBO manufacturers started releasing new BIOS's. I flashed my board and haven't had a problem since.

  25. Mod up please!! by Anonymous Coward · · Score: 0
    But the fact remains is that this VM holy war should have been resolved in the 2.3 series of kernels.


    Hear! Hear! Linux releases are seriously lacking in professionalism.
    1. Re:Mod up please!! by Sleuth · · Score: 1

      Log in please! (Sheesh!)

  26. VM ? Bah... by kraf · · Score: 0

    Just buy more memory kids, it's cheap.
    I have half a gig and no swap, and everything runs fine and dandy :)

    1. Re:VM ? Bah... by Anonymous Coward · · Score: 0

      Not really. I thought that when I got 512MB for my laptop, no more swap for me. However with 2.4.6 (I think, I tried a few) there was a bug where the disk cache would keep growing and then the kswapd would get into a loop and max the cpu. Often I had 300+MB of cache and would get out of memory when trying to load galeon. 2.4.10 fixed this for me.

  27. Copying files on Win2k by throx · · Score: 2

    To ask the question another way, my big pet peeve with Windows 2K is that copying a big file (100's of megs) locks up the system.

    Interesting. I've copied files around that are several gigabytes in size and suffered no ill effects.

    What were you using to copy the files? Command line, Explorer? Define 'locks up the system'?

    --

    Fear: When you see B8 00 4C CD 21 and know what it means

  28. Re:Copying Large Files - Re:Somebody help me out h by throx · · Score: 2

    I believe that when you copy a file 2k reads a chunk and then writes it, then repeats.

    I'm pretty sure it mmaps the files and does a memcpy(). Would make the most sense because it then just results in direct access to the cache manager's buffers.

    From lots of testing, using mmap'd files is about twice as fast as using read/write on Win2k.

    --

    Fear: When you see B8 00 4C CD 21 and know what it means

  29. What a load of BS by Anonymous Coward · · Score: 0

    A switch between mozilla and an xterm took SECONDS with 192 MB of RAM?

    Next time tell us you had 100+ mozilla windows open.

    1. Re:What a load of BS by sfe_software · · Score: 3, Informative

      I didn't want to get too detailed, but I always have quite a lot of things running. 100 Moz windows? Not quite, but I typically keep anywhere between 5 and 20 open at a given time...

      And, anyone who uses Mozilla constantly knows that it doesn't seem to free memory, ever... it grows and grows. The "tabs" feature is great (so technically it's just the one "window" open) but unfortunately closing a tab does not free any memory. I rarely restart Moz because I'd have to then re-open all the pages I had going, etc...

      Trust me, run Mozilla for a few days straight, you'll see quite a bit of memory usage (it's at 80 megs right now).

      Then there's LICQ (11 megs for such a tiny lil program), KMail (10 megs), 5 terminals, BitchX, Nautilis (using 12 megs, I suppose just showing the desktop)... the list goes on.

      So yes, I'm typically using the full 192 megs plus a bit of swap after running for a while, and the new kernel has, IMHO, improved performance under these conditions.

      --
      NGWave - Fast Sound Editor for Windows
    2. Re:What a load of BS by Ian+Bicking · · Score: 2
      And, anyone who uses Mozilla constantly knows that it doesn't seem to free memory, ever... it grows and grows. The "tabs" feature is great (so technically it's just the one "window" open) but unfortunately closing a tab does not free any memory. I rarely restart Moz because I'd have to then re-open all the pages I had going, etc...
      Galeon, which of course has the same memory problems, has a nice feature of exiting with a session, so when you restart it all the same windows are open. Unfortunately your history gets lost, but that's usually not so bad.

      Of course, better memory management would be better. But Galeon does what it can to make the instabilities less painful.

  30. Check out Linux Weekly News and Kernel Traffic by cpeterso · · Score: 5, Interesting

    (Yes, I spend an hour a day reading the kernel mailing list.)

    I'm too lazy to read LKML, but I am interested in the happenings of the Linux kernel development. I highly recommend Linux Weekly News' kernel news (updated every Thursday) and Kernel Traffic , an in depth summary of the week's LKML happenings (usually updated every Sunday or Monday).

  31. BIOS settings by Anonymous Coward · · Score: 1, Interesting
    One thing that is almost impossible to account for in these sorts of "benchmarks" is whether or not the BIOS chipset parameters are properly set. In particular, such settings as RAS, CAS, cache timing, and so on can be critical to stability. I have seen self-appointed know-it-alls post web sites on how to "tweak" the BIOS for ulitmate performance. Usually this involves setting system timing on the very edge with no margin for changes in load and environmental conditions. And usually these so-called "gurus" are not trying to achieve a stable system; they are trying to get the best FPS running Quake or whatnot.

    I remember having problems with the 2.2 Linux kernel on occasion. Eventually after much trial and error I went into the BIOS and adjusted the system timing to be a bit slower, allowing system control lines more time to stabalize. My problems went away. Adjusting the BIOS is a black art, and it is often beyond even the best engineers, given that the sparse documentation is usually written in some unfathonable Asian "dialect" of English.

    While this comparison of VM systems may be somewhat useful, I have yet to see a study done on a statistically significant sample. I would like to see several hundred different machines compared and have those results analyized. Only then do I believe that truly meaningful conclusions can be reached.

  32. 2.2.12 by dizzy_p · · Score: 0, Offtopic

    Hi,

    at my former college, a server i'm the administrator of - has an uptime of 98 + 269 + 158 days (the power went down 2 times)..

    A sparcStation 10 - running rh 6.1 + + ...

    It's probably the most stable machine I've
    ever runned into.

    --
    --larsw
    1. Re:2.2.12 by CyberKnet · · Score: 2

      hi,
      so?

      All you know is that it is stable to 269 days.
      You cant add it all up and say "My computer has an uptime of 525days" ... it doesnt matter whether the reboot of the server was because of no memory, a kernel segfault or a power loss.... the fact of the matter is that you have no concrete evidence to show how the machine will perform after 269days... only hypothesis based on previous experience to the current point.

      Case in point: "My windows machine has an up time of 1 day + 1 day + 1 day etc etc etc (I shut it down every night to save on my electricity costs)"

      it just doesnt work... nice try... no cigar.

      --
      Video meliora proboque deteriora sequor - Ovidius
  33. Context for why Linux switched VM Code? by bteeter · · Score: 2, Interesting

    I thought it was interesting how the author discussed the mid-release swap out of VM code in the 2.4 series kernel. He mentioned that Linus had felt that the AA version of the code was better than the existing version and wholesale swapped it out.

    Does anyone know why Linus did this? Are there some empirical results somewhere that dictate a reason to do this? Certainly, it would seem that there would be, but the author didn't point it out.

    Also the author pointed out that 2.2.x kernel's break at very high load levels. Is there documentation somewhere discussing what that might be?

    Take care,

    Brian
    --
    100% Linux Web Hosting
    --

  34. Re:Copying Large Files - Re:Somebody help me out h by Anonymous Coward · · Score: 0

    large file = bigger than 2GB

    your warez iso's don't count.

  35. Not "which" but "when" by Mr.+Fred+Smoothie · · Score: 4, Informative
    Actually, the real debate on LKML was not whether something drastic needed to be done about the poor performance of the early 2.4 VMs, but *when* that should occur.

    Basically, the people who sided with Linus/Andrea were of the opinion that "things are so bad now [which was between 2.4.5 and 2.4.9] that a complete replacement of the VM even in a 'stable' kernel series is justified", and those who sided with Alan Cox/Ben La Haise/Rik van Riel thought that the existing VM code could be massaged and tweaked enough so that the performance would become acceptable and huge changes could be postponed until 2.5 opened.

    This was complicated by the fact that between 2.4.5 and 2.4.9, the -ac series had accepted patches from Rik which weren't applied in the Linus branch and did in fact seem to be fairly successful in increasing performance through much less intrusive code changes. This was one of the main complaints of the Alan/Ben/Rik contingent; that the problems had already been largely resolved in the -ac tree, and that that approach should have been applied in Linus' tree before jumping to a complete rewrite.

    At this point, a consensus seems to be forming that the Andrea VM is *much* simpler, the changes haven't had much adverse effect on other subsystems, and the performance is just as good or better than the VM in the -ac series.

    The question of whether or not it should have waited until 2.5 is one that will probably never be answered to everyone's satisfaction, but at least will soon be academic.

    --

  36. Not that simple by Mr.+Fred+Smoothie · · Score: 2, Informative
    That's interesting. I'm operating on my simplistic, naive notion that a VM is "the hard drive, where you dump pages when you're short on RAM or they get really stale". Thus, in my simple little world, the VM subsystem is affected the most by tweaks to the scheduler that swaps out pages. Is that where the major differences between the two VM schemes lie?
    Actually, the VM is "the subsystem which keeps you from getting short on RAM, by dumping pages to the hard drive when they get stale, while not swapping unnecessarily because of the big impact that disk I/O has on system performance."
    --

    1. Re:Not that simple by slamb · · Score: 2, Informative

      Actually, the VM is "the subsystem which keeps you from getting short on RAM, by dumping pages to the hard drive when they get stale, while not swapping unnecessarily because of the big impact that disk I/O has on system performance."

      It's not that simple, either ;)

      It does everything you said but also tries to minimize disk I/O by caching parts of the disk in memory. It has to maintain a balance between maximizing the cache and minimizing swap usage. I believe recently they've also talked about doing quite a bit more lookahead on the cache...if you're accessing one disk block/page/whatever, grabbing subsequent ones as well. (I'm not sure if this is the next block of the physical disk or the file, but that's not the point.) That would be an additional complication.

  37. Linux needs professionalism in release management by Sara+Chan · · Score: 3, Interesting

    I have some concern about how all these changes appear to businesses. Linux is supposed to be a high-quality alternative to other operating systems. Yet we've recently had a production kernel that failed to even compile, and there have been major upheavals to the "stable series" VMM, which sometime degrade reliability or performance. This isn't going to impress, and it gives competitors valid ammunition.

    Almost all successful enterprises have to overcome a hurdle: how to transition from the "just for fun" start-up stage to the "managed with professionalism" stage. Ideally, fun is kept along with the professionalism. Note that even at Microsoft, B. Gates now lets S. Balmar (CEO) and R. Belluzzo (President and COO) manage things. Gates is the "chief software architect" and Microsoft is still his, but others do the managing.

    Linux needs more professionalism in the management of releases, I believe.

  38. Why is the VM important? by markov_chain · · Score: 1
    I don't understand why everyone cares about the VM so much. It is mostly useful in a situation where a machine's working set doesn't fit into RAM-- a situation which can only really be fixed by adding more RAM or activating fewer applications. Who cares if the bad case is a little faster or slower-- it is still a bad case, and better avoided.

    ~

    --
    Tsunami -- You can't bring a good wave down!
    1. Re:Why is the VM important? by Anonymous Coward · · Score: 0

      Because GCC 3.x regularly blows out of RAM and eats into swap?

    2. Re:Why is the VM important? by Ziviyr · · Score: 2, Insightful

      Working set or rarely used bloat?

      It wouldn't be horribly useful if the CPU was fixated on disk bound data. But for lazy programs with little concept of memory efficiency. Swap out, and if its needed again swap in.

      All the more space for disk buffers.

      --

      Someone set us up the bomb, so shine we are!
  39. tcsh time variable by brer_rabbit · · Score: 4, Informative

    I don't know about other shells, but tcsh has some features that provide other useless statistics. You can set a variable called "time" that can provide additional information. From the tcsh man page [edited]:

    time: If set to a number, then the time builtin (q.v.) executes automatically after each command which takes more than that many CPU seconds. If there is a second word, it is used as a format string for the output of the time builtin. (u) The following sequences may be used in the format string:

    %U The time the process spent in user mode in cpu seconds.
    %S The time the process spent in kernel mode in cpu seconds.
    %E The elapsed (wall clock) time in seconds.
    %P The CPU percentage computed as (%U + %S) / %E.
    %W Number of times the process was swapped.
    %X The average amount in (shared) text space used in Kbytes.
    %D The average amount in (unshared) data/stack space used in Kbytes.
    %K The total space used (%X + %D) in Kbytes.
    %M The maximum memory the process had in use at any time in Kbytes.
    %F The number of major page faults (page needed to be brought from disk).
    %R The number of minor page faults.

    Particularly, if you could measure the number of swaps/page faults in
    the different kernels it would be pretty useful. I've got $time set
    to:
    # have time report verbose useless statistics
    set time= ( 30 "%Uuser %Skernel %Eelapsed %Wswap %Xtxt %Ddata %Ktotal %Mmax %Fmajpf %Rminpf %I+%Oio" )

  40. What about the VM work done in other *nixes? by hargettp · · Score: 2, Insightful

    I do not follow *BSD nearly enough to make this kind of observation, but I thought I recalled that when Universal Virtual Memory was rolled into NetBSD, it was widely regarded as a good design. Anybody with much more VM design knowledge able to comment on how suitable a design like that one (or other well-regarded VM design from other Unixes) would be for the Linux kernel?

    1. Re:What about the VM work done in other *nixes? by be-fan · · Score: 2

      I've read the UVM paper twice (its like 200pp) and it really is a good design. I don't like the BSD idea of abstracting the VM away from the hardware so much (you spend a lot of memory in places you don't have to) but it does make the design cleaner. However, UVM is more of the mechanism part of the VM. Its the code that lets you share memory, memory map files, etc. What the Linux VMs are competing on, on the other hand, are the policy parts of the VM. What gets paged out and when. As it stands, UVM is probably tied with Linux on the low-level VM part (though UVM has a cleaner interface to the MMU hardare, IMO). The virtual memory filesystem cleaned up handling of shared memory segments significantly. (Before 2.4, swapping out normal memory and swapping out SysV shared memory were two different things). It has many more (cool) features, such as sharing address spaces, trading address space, etc, but few *NIX apps use those features (since its not standard *NIX API). FreeBSD probably has the best policy mechanism right now. The low-level VM is a heavily-tweeked one based on Mach's, but it doesn't have most of the modern features of UVM.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:What about the VM work done in other *nixes? by Anonymous Coward · · Score: 0

      Why no other systems? Because this is an article comparing 2.2 and 2.4 Linux systems. Please read the topic.

  41. Re:Linux needs professionalism in release manageme by bball99 · · Score: 1

    - more professionalism? i'm sorry, but that position is somewhat naive... for professionalism, get your distributions from Red Hat, SuSE, Caldera, etc.

    - what was the "production kernel that failed to even compile?" ... don't be afraid to name names! be specific!

    - of course there have been "major upheavals to the stable series"... remember 1.2.13 -> 2.0.x??? part of the process is going through new development/environment models...

    Linux developers don't give a "romeo alpha" about maintaining some sort of business image... it has only been in the last couple of years that the "business" community has even come around to supporting Linux (after much pleading on the part of developers and users)... the 'professionalism' of 'business' in earlier times for Linux was: "Go away. You don't have market share. There aren't enough users." Screw business, and screw "suits.

    - Linux is much more than a "successful enterprise," and many developers don't care about maintaining release schedules, trying to impress "customers" and so on...

    - What amazes me is the recent turnaround of all the witless computer industry pundits and early nay-sayers who pooh-poohed the idea of using Linux a few years ago, but are now whining about version releases, features for users, etc.

    - Want "professionalism"? Use Microsoft software! (just kidding, mind you)...

    - p.s. Gates is much, much more than "chief software architect." He's Satan!

    :-)

  42. Re:Linux needs professionalism in release manageme by leku · · Score: 2, Insightful

    And that professionalism comes in form of distributors like Redhat/Mandrake/whoever. When they release updated kernels those kernels work as you'd expect.

    I don't think you should expect every "business" to go compile every single kernel update that comes along except of course when there are some serious security/whatever issues involved - in which case the distributor releases an updated kernel.

    People who like to experiment or live on the edge compile and use all the hottest kernels and they are also the ones who report of problems, which then get fixed. I don't know how professional this is but I'm happy to see new kernels being released often rather than waiting and wondering for weeks/months if there's going to be a new release some day or not.

    Hmm, my first post, hope this works.. :-)

    --
    _________ Be good.
  43. Re:Copying Large Files - Re:Somebody help me out h by throx · · Score: 2

    I'm talking about files bigger than 2GB and not warez ISOs. Try database dumps.

    Get a clue before you flame.

    --

    Fear: When you see B8 00 4C CD 21 and know what it means

  44. Offtopic? by Anonymous Coward · · Score: 0

    Yeah, this post was really Offtopic.

    Gawd, that Moderator Crack must be really good stuff!

  45. Re:Linux needs professionalism in release manageme by Anonymous Coward · · Score: 0
    what was the "production kernel that failed to even compile?"

    2.4.12; see the story & comments on Slashdot:
    http://slashdot.org/article.pl?sid=01/10/11/115422 3
  46. Re:Linux needs professionalism in release manageme by err666 · · Score: 1

    And if a closed source vendor completely changes the VM between, say Service Pack 3 and 4, you would have no chance know.

    I think Linus does a relatively good job at release management.

    --
    reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b')))
  47. Re:Linux needs professionalism in release manageme by Billly+Gates · · Score: 2

    Service pack 3 or 4 have both tested and released as alpha's and beta's before being declared stable and released by Microsoft. Linux really does have this problem and freebsd users do have a valid arguement. You should not do a radical change to the vm in a minor release. There is no valid reason. The Freebsd team only does things like this in the unstable releases. They created a minor release and a unstable or experimental release which both are under development simultaneously. The vm patch would go in the unstable one and new drivers would go in the stable or minor releases. Only bug fixes or device drivers which have been tested throughly are even released. This is how any server OS should be developed. Freebsd users claim there system is more stable partly due to the fact that they have better testing and team management. They are conservative while they view Linux as too bleeding edge. They have a point.

  48. Responsiveness vs. throughput by tuxlove · · Score: 4, Informative

    He notes in his commentary that the 2.2 kernel "felt faster" or something to that effect, while still performing much worse in actual numbers. This is probably the manifestation of the a well-known effect in the world of performance: responsiveness and throughput are often mutually exclusive.

    In other words, given fixed parameters, it's usually not the case that you can improve both responsiveness and throughput at once. If you don't change memory, CPU speed or I/O bandwidth, and your code is devoid of excess baggage which effectively reduces one of the above, it is almost a given that the two are a tradeoff. I've personally experienced this numerous times in my own performance work, and have read the research of others that corroborate it.

    Here are some really interesting fundamental examples. One company I worked at lived and died by disk performance benchmarks, in particular the Neal Nelson benchmark. This test ran multiple concurrent processes, each of which read/wrote its own file. The files were prebuilt to be as contiguous on disk as possible so that sequential I/O operations wouldn't cause disk seeks. By the nature of the test, though, seeking would happen a lot because you had N processes each reading/writing a different contiguous file. So, you lost the benefit of the contiguousness. Until, that is, we came up with a way of scheduling disk I/Os which, given a choice of many pending I/Os in a queue, favored starting I/Os which were close to where the disk head happened to be. This wasn't your father's elevator sort! The disk head would hover in one spot for extended periods, even going backwards if necessary to avoid long seeks. It was a bit more sophisticated than that, but those are the basics.

    The effect was, if a process started a series of sequential I/O operations, such as reading a file from beginning to end, no other process could get much of anything through until it was done. So what did this do to performance? Well throughput shot through the roof because disk seeks were nonexistent. The test performed beautifully, as it only measured throughput, and we consistently won the day. However, I/O latency for the processes that had to wait was extremely high, sometimes on the order of minutes.

    Needless to say, these "enhancements" were only useful for benchmarking, or perhaps for a filesystem on which the only thing running were batch processes of some kind. It would feel slow as molasses to actual human users, verging on unusable if anyone started pounding the disk. You can't wait 60 seconds for your editor to crank up a one-page file (well, okay, we didn't use MS office in those days :). On paper it was fast as hell, in practice it seemed very slow.

    One paper I read on the subject of process scheduling postulated that by increasing the max time slice of a process you could improve performance. The idea was that you would context switch less, would improve the benefits of the CPU cache, and so on. They increased the time slice to something above 5 seconds and ran some tests. Of course, the throughput improved by some nontrivial amount. Predictably, though, the system became unusable by actual human users for the same reason as in my disk test example.

    The other extreme would be absolute responsiveness, in which you spend all your time making people happy but not getting any real work done. An example of this would be "thrashing", where the kernel spends most of its time context switching and not actually running any one process for an appreciable amount of time.

    The sweet spot for the real world is somewhere inbetween, perhaps a little closer to the throughput side of the spectrum. It sounds like this may be the direction they've gone with the 2.4 kernel, though I'm sure they've done a lot of optimizing and rearchitecting to improve performance overall.

    1. Re:Responsiveness vs. throughput by be-fan · · Score: 2

      Of course, it all depends on the application one is using the system for. If you are running a webserver, you can tend towards the throughput side because latencies are going to be limited by the latency of the net connection (at least 20-30ms usually). If you're doing real time audio, you want to tend towards the latency side. On a desktop machine, it is probably best to tend towards latency. I doubt anybody minds a compile finishing 10% slower if it means that their MP3s don't skip and their mouse doesn't jump around. Interestingly, the 2.4 kernel is actually pretty good about both (maybe excluding VM and some filesystem code). With the preempt patches, latency is down to 2ms or so, while throughput is almost unchanged (or even sped up, depending on the task). Of course, you make the assumption that there are no other things limiting the performance of the app. Having used Linux GUIs for awhile, I'd say that's quite an assumption...

      --
      A deep unwavering belief is a sure sign you're missing something...
  49. Re:Linux needs professionalism in release manageme by slashdot_commentator · · Score: 1


    You can count on the following truths:

    1) Most managers do not have a clue about the VM issues. I'm sure many journalists are itching to write about 2.4, except the technicalspeak would probably turn off any suit reading it.

    2) Linux is not a "professional" product. No "professional" busts their butts to meet a release date for free.

    3) Any business who cares about professionalism would not be running any
    (web)server on a 2.4 kernel in a production environment. It has nothing to do with the 2.4 release; one almost never put into production something that was implemented weeks ago without extensive testing.

    Linux is always going to be a "cult" of Torvalds (though "church heirarchy" would probably a better metaphor). Its going to stay that way until Linux quits, dies, or something like Red Hat or IBM decides to introduce a "schism". If you really feel the need to express your concerns about professionalism, I suggest you email your concerns to Linus. Slashdot readers do not enforce professional standards in Linux kernel releases.

    --
    There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
  50. who need VM any more? by lobiusmoop · · Score: 0

    Jeez, in an age where a gig of core costs less that 100 bucks, do we really need the abstraction layer of VM any more?

    --
    "I bless every day that I continue to live, for every day is pure profit."
    1. Re:who need VM any more? by be-fan · · Score: 2

      Look at it this way. Say 1GB of memory with VM will allow you to fit a 100 programs in RAM. Without VM, that number drops to 50. Your solution would be to just double your RAM, at which point I could have 200 programs with VM, but only 100 without. No matter how much memory you add, you can always find ways to fill it. VM doesn't incur a terribly large performance hit (at least when its not trashing) so its a no-brainer to include it. And its RAM, not core... damn grognards...

      --
      A deep unwavering belief is a sure sign you're missing something...
  51. where is 2.2.19pre2+ compare? by Anonymous Coward · · Score: 0

    ** Tests were run using 2.4.13, which includes the new "AA" VM, 2.4.12-ac6, which includes the "Rik" VM, and 2.2.19, which uses the "old"
    2.2 series VM. **

    Derek, could you run your test suite against 2.2.19pre2 or higher? pre2 was updated with Andrea's VM-global patch. This would be more accurate for those choosing between 2.2.x and 2.4.x.

    rgds,
    tim.

  52. Re:Can you imagine... by Anonymous Coward · · Score: 0

    No.

    Can you imagine a beowulf cluster of Alan's Cocks?

  53. Re:Linux needs professionalism in release manageme by John+Whitley · · Score: 2

    The professionalism of which you speak exists, and is the job of the distribution managers in this community. RedHat, SuSE, Debian, etc. all produce stable releases which include vetted kernels. Often these kernels aren't latest stable, but rather the ones which passed the QA and field testing process.

    While Linux kernel development has its ups and downs, stable branches definitely do cool down and become very stable (see 2.2.19). This time is a little bumpier than most. Such is life.

    On one hand, I do agree that the VM change would have been better in a development branch (2.3 or 2.5). On the other, I view that statement as an valued ideal that didn't mesh with reality in this case. I'll guarantee that such happens in "professional" production environments -- sometimes you simply find yourself between a design flaw and a hard place and *must* make a decision that will enable the product to meet its goals. Yes, Linus took a gamble and ruffled feathers. Yet as hindsight plays out, his gamble appears to be paying off in both performance and maintainability.

  54. Re:Copying Large Files - Re:Somebody help me out h by be-fan · · Score: 2

    That's strange. mmap()'ing the file should be about as fast as read/write, since the Win2K VM implements read/write by mmap()'ing 256KB file regions into kenrel virtual memory and doing memcpy().

    --
    A deep unwavering belief is a sure sign you're missing something...
  55. Re:Linux needs professionalism in release manageme by NerveGas · · Score: 1

    I don't see that as much of an issue. Why not? Well, I've been waiting for the VM thing to settle down, and a week ago I decided to check a couple of my production servers. What kernel did I find? 2.4.0. And they had been up since that was released. With 512M, swap usage was still at zero.

    In business, you don't usually just upgrade every time a new -preX release comes out. You find something that works, and use it until you either it's broke, or you find something much better that you also know to work.

    Steve

    --
    Oh, you're not stuck, you're just unable to let go of the onion rings.
  56. Re:Copying Large Files - Re:Somebody help me out h by Anonymous Coward · · Score: 0

    No, it makes sense. Think about what happens to the physical data in each case.

    Scenario 1: read/write. The data gets paged into physical memory (which happens to be mapped in the kernel's address space), memcpy'd into a buffer (different piece of phys memory, mapped in user space), and written out from that buffer.

    Scenario 2: mmap/write. The data gets paged into physical memory (this time, the physmem is mapped to an address in a user task's address space, not just the kernel's address space), and then written back out from that same piece of physical memory.

    Scenario 2 avoids a memory-to-memory copy. So it ought to be a bit faster.

  57. requiring a hard reboot... by Shanep · · Score: 1

    "I don't think this was related to anything I was doing as I wasn't actually doing a compile run at the time - probably just a random occurance, but worth mentioning. "

    What is this guy smoking!? A Ferrari might take the least amount of time to get somewhere, *IF* it ever gets there that is!

    I've hard-rebooted my Linux machine a few times ever, and those few times were mostly since moving to 2.4.10+2.4.13.

    Under high load, "the 2.2 kernel gave the best responsiveness".

    Under low load, "2.2 again was the most responsive" AND WHILE IT "used the most swap ".

    "Also, after one 2.4.13 test run, the system locked up entirely, requiring a hard reboot."

    Another "random occurance" to be sure.

    "2.4 VM systems are undeniably better". Say what? Better because it is quicker or better because it brings Linux in-line with Windows 95 stability?

    Is it just me, or does this look like a guy trying to advertise himself and his company as smart guys who know Linux and want work, through some long winded test that claims that the VM in 2.4 is much better that 2.2 because it is a quicker, ignoring the glaring fact that 2.4 locked up hard for him more than once in his tests?

    --
    War crimes, torture, lies, illegal spying... Would someone give Bush a blowjob, already, so he can be impeached?
  58. Re:Can you imagine... by Anonymous Coward · · Score: 0

    How is this off-topic? Troll yes, off-topic no. Fucking dumb moderators.

  59. That's bad, but there's worse. by Animats · · Score: 2

    Worse is the information that when he loaded his system up, he got repeated "parse error" messages from GCC. That's unacceptable, and needs to be understood. He suggests that it could be a transient hardware error, but since he got the same error more than once, that's unlikely. The other possibilities are that the VM manager corrupts memory under overload (very bad) or that GCC ignores some reported out-of-memory condition (also very bad.) This needs to be diagnosed.

    1. Re:That's bad, but there's worse. by Rogain · · Score: 1

      on 2.2.x so nobody really cares. apt-get dis-upgrade or make install yer own 2.4

      --
      The current Slashdot moderation system is made by gay communists!
  60. Re:Linux needs professionalism in release manageme by maxpublic · · Score: 1

    I have some concern about how all these changes appear to businesses.

    I don't, and Linus has made it abundantly clear on several occasions that he doesn't either. I doubt that most of those who use Linux care a whit what 'business' thinks about anything concerning Linux.

    It's mostly the bandwagon types and the pundits who go on and on about these things, and why should we cater to them? After all, business could drop Linux altogether, decide to deal with MS until the end of time, and the folks who develop Linux as a hobby will still be plugging away. Works for me.

    Linux is supposed to be a high-quality alternative to other operating systems.

    Linux isn't 'supposed to be' anything other than what we say it is, especially those in development. This is pundit-speak; the spew that pundits commit to articles in order to make themselves appear far more important than they are.

    This isn't going to impress, and it gives competitors valid ammunition.

    Linux has no competitors. Red Hat, SuSe, etc., now they might have computers; but Linux does not. And as I said before, most of the developers don't care in the slightest about other operating systems, or what some PR lackey from another company or a self-appointed pundit has to say about the situation.

    Almost all successful enterprises have to overcome a hurdle: how to transition from the "just for fun" start-up stage to the "managed with professionalism" stage.

    It's clear you're missing the entire point. Linux is not an enterprise; the process that's used to produce Linux doesn't have to 'transition' to anything. You're confusing a bunch of volunteer developers hacking up an OS with an actual business. Apples and oranges.

    Linux needs more professionalism in the management of releases, I believe.

    Linux is doing just fine the way it is. If you want more 'professionalism' I'd suggest you 'transition' yourself to Windows XP. That OS is produced by a business which seems to be what you're looking for anyway.

    Max

    --
    My god carries a hammer. Your god died nailed to a tree. Any questions?
  61. Mod parent up please! Excellent summary! by mTor · · Score: 1

    Please mod parent up.

    Thanks!

  62. Re:Linux needs professionalism in release manageme by Anonymous Coward · · Score: 0

    Er, maybe I missed something, but didn't Linus say that the goal for Linux was "world domination"? If so, you're all wrong.

  63. Re:Most recent is 2.4.14-pre7, with many VM update by j3110 · · Score: 1

    Do you really think that if 170 patches are going to give minimal increase in performance that a few more are going to make it any better? I think the benchmarks show a lack of justification for switching to a kernel that still hasn't been fully tested. At least not on a production system.

    Also I think the author of the benchmark brings up a good topic about the schedular being as important as the VM. IMHO, I think the the schedular needs a couple of tweeks. The only real way to reduce page faults is to schedual processes that will likely reference pages already in memory over those that have a greater possibility to access swapped pages. In the interim of executing these other processes, you could issue the DMA commands to swap pages so long as the processes you schedualed are unlikely to use parts of the disk that are not cached. (Thus blocking anyhow, just select another process) I'm uncertain of how this might affect old PIO drives, or if it is completely feasible, but it doesn't seam that hard of a task.

    --
    Karma Clown
  64. Re:Linux needs professionalism in release manageme by maxpublic · · Score: 1

    argh, that should be 'competitors' and not 'computers'. I sure hope to hell that wherever Linux resides, it's on a computer.

    Max

    --
    My god carries a hammer. Your god died nailed to a tree. Any questions?
  65. Swap? who needs swap anyway? by Bert64 · · Score: 0

    My computer today has far more memory, than my computer 3 years ago had combined memory and swap, and a few years before that, PC`s atleast didn`t need swap, neither did MacOS or AmigaOS, infact swap was reserved for high end servers with the IO performance to handle it. When microsoft introduced win3.11 with swapfile support, i always had it turned off, for a HUGE performance boost.. then code bloat overtook the price of ram, and more modern o/s`s wont run atall, or will run very badly without swap, even on a system with over a gig of ram. Ram is so cheap nowadays, o/s`s should be designed to run without relying on swap, and should take advantage of the extra speed.. swap should again be relegated to the high end servers. What would you rather have? a 256mb swapfile that severely cuts into your hd io bandwidth, or a 256mb dimm for $60 or less.

    --
    http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  66. "Professionalism"? by k98sven · · Score: 1

    I very much doubt that these kinds of 'political' discussions are less common in large corporations.
    In fact, I belive they may have more of them.

    The main difference is, in an open source project like Linux,
    these debates get fought-out openly instead of in corporate conference rooms.
    This means more people are debating and studying the problem, which (hopefully) leads to the better
    decision-making.

  67. Re:Copying Large Files - Re:Somebody help me out h by be-fan · · Score: 1

    You're right.

    --
    A deep unwavering belief is a sure sign you're missing something...
  68. Web Browsing - Swap Thrashing on 2.4.10 by sminra · · Score: 0
    I'm using 2.4.10 with Andrea Arcangeli's preempt patch, and I regularly suffer severe swap problems just by listening to mp3s and browsing the web. Please read on before you write me off as a luser or a FUDdite.


    I'm typically running apache, cups, KDE, a few konsole windows, kppp, konqueror, and xmms (random play of a 6000 song mp3 archive niced at -19),.


    To reduce my per-minute ISP fees, I open-up a konqueror window for each topic I'm interested-in (incl. several slashdot discussions) and log-out as soon as the pages finish loading. Then I peruse the news and discussions offline. This technique can easily cut my monthly ISP bill by 50%.


    My problem with this technique is that when I open the 12-16th konqueror window, the machine slows to a c r a w l, sometimes even causing my high-priority pre-empting xmms mp3 playback to skip. So I begin very slowly closing konqueror windows... sometimes the swapthrash stops after closing a big (slashdot) window, other times I need to killall konqueror.


    My setup is pretty typical: an ABIT BE6 mobo with a Geforce 2 MX (Xfree 4.1.0 with nvidia 1541 binary drivers), Celeron 750 256mb RAM, 512MB swap, running a slightly tweaked Mandrake 8.0 (traktopel) distro.. Oh, and a 1600x1200 24bpp desktop.

    I'd be very interested to hear whether anyone else sees this behavior when opening 12-16 konqueror windows.


    I'm not blaming the Kernel VM just yet: memory problems can be caused by bad userland software.


    Could it be that when Konqueror renders a web-page, it renders the whole thing to a big-ol bitmap (including stuff that's off-screen)? If this is true, than the bitmap representation of a typical slashdot discussion containing 30+ screen-pages of text would require a bitmap of 800 x (1200 x 30) pixels = 28,800,000 pixels.. @ 24bpp -> 86,400,000 bytes! Whoah! Is konqueror that much of a pig?

    I rather doubt this, but I still suspect Konqueror is maintaining more 'state information' than it needs-to in the event that a window gets hidden behind another window. Naively, all it really needs to store is the URL and any HTML/Javascript contained therein -- a few hundred kB per page... right?

    Oh, and X surely needs to keep a buffer of the window's bitmap (800x1200@24bpp=3MB), but even with 20 open windows, that shouldn't strain a system with 256 MB RAM + 512 MB swap? Rrrright?

    Can someone share similar experiences? Or share tips for dealing with this? (other than "open fewer windows" or "buy more RAM")

    TIA