Please create an account to participate in the Slashdot moderation system


Forgot your password?
Linux Software

Linux 2.4 VM Documentation 115

popoutman writes "Mel Gorman has announced the availability of a guide to the 2.4 kernel VM including a walkthrough of the VM code. Anyone interested in obtaining a solid understanding of the Linux 2.4 VM will certainly want to take a look at this documentation. Mel says that the effort is at least several weeks from being finished, but that he's releasing it now with the hopes of getting feedback to be sure he's on the right track. He also notes that the 2.5 VM is still too much of a moving target for him to document it just yet." See also a Kerneltrap story.
This discussion has been archived. No new comments can be posted.

Linux 2.4 VM Documentation

Comments Filter:
  • JVM (Score:1, Interesting)

    by Anonymous Coward on Wednesday January 15, 2003 @01:45PM (#5088732)
    If I were to spend a lot of time integrating a JVM into the kernal, would it be useful?

    Kind of like FreeBSD did, fast JAVA under linux would be awesome.
  • by tprox ( 621523 ) on Wednesday January 15, 2003 @01:54PM (#5088781)
    It stands for Virtual Machine, though I know what you mean about explaining acronyms.
  • by XaXXon ( 202882 ) <[moc.liamg] [ta] [noxxax]> on Wednesday January 15, 2003 @02:28PM (#5089011) Homepage
    I've always wondered why, in today's world of gigabytes of memory in personal computers, why such a big deal is made about virtual memory..

    I'm not trying to troll, and maybe someone can explain this to me, but as far as I know, VM is used when a computer runs out of RAM. You take some of what's in the RAM and toss it on to the hard drive. When you need it again, you reload it back into RAM and use it.

    I've got 1.5GB of RAM in the box I'm typing this on, and the only reason I don't have more is that I have no use for it.

    At my work, we've got some systems that can eat up 2GB of RAM, but we just put 4GB in the box and don't worry about it. We've found that if we let anything touch VM it slows things down way too much.

    Anyways, I was hoping someone could enlighten me as to why VM has been such a big deal recently.
  • by GGardner ( 97375 ) on Wednesday January 15, 2003 @03:30PM (#5089411)
    Um. Don't you mean it enforces memory separation between processes?

    Good point -- this is such a given on Unix systems that I didn't word it very well. What I should have said is that it enforces memory separation and protection between most memory segments and most processes, and allows for sharing of segments when explicitly setup. This is perhaps the most important thing the VM system does.

  • Different VM (Score:4, Interesting)

    by be-fan ( 61476 ) on Wednesday January 15, 2003 @07:45PM (#5091029)
    I did a lot of research on VMs about a year ago, and while the different VM systems out there really are interesting they're all kind of limited by the whole "page-level protection" model we've stuck with since the '70s. There are a lot of clever algorithms in the FreeBSD and 2.4 VMs to deal with high load and paging, but the core VM stuff (mapping memory, protection, sharing etc) is largely the same, and is limited by the MMU capabilities of current CPUs. All CPUs basically seperate processes into unique memory contexts, and map (using some sort of page table or reverse page table) physical memory pages of fixed size into the contexts. This solution is sub-optimal for object oriented systems with large scale sharing (the page tables get unweildy, and certain secondary structures, like reverse maps*, grow out of control). What I'd like to see is something new, just for the hell of it being new.

    Here's what I'm thinking. Ditch pages and memory contexts entirely. Instead, divy up a 64-bit virtual address space among individual processes, say 48 bits apiece. If a process wants to access memory outside it's 48-bits, it would need to access it through special pointers (which, thanks to a tagged-RAM architecture) could written to by the OS (allowing the OS to define its own protection and sharing mechanisms). Does anybody know of any existing systems that work even vaguely like this? Or of a different MMU architecture at all? I was hoping that AMD might at least include software TLB management, because there is some nifty stuff you can do with that, but it looks like Hammer will use the same VM mechanism that came out with the 386!
  • by Jayfar ( 630313 ) on Wednesday January 15, 2003 @10:09PM (#5091852)
    5 root 9 0 0 0 0 Z 0.0 0.0 0:18 kswapd

    My kswapd went zombie after ~18days uptime; it had gone zombie after about 70 days prior to that reboot. I've found references to this occurance ...going back at least through 2.2 kernels and it still happens with 2.4.18 (not the latest, but no real reason for me to build a new kernel unless it solves this). I've never read a thread on this that arrives at a solution or even a description of what is going on. I first encountered it when I went from Mandrake 8 (2.4.8 kernel) to 8.1 (2.4.18).

    Fortunately, I have plenty ram and this doesn't seem to otherwise affect anything.

Forty two.