Slashdot Mirror


Anatomy of Linux Kernel Shared Memory

An anonymous reader sends in an IBM DeveloperWorks backgrounder on Kernel Shared Memory in the 2.6.32 Linux kernel. KSM allows the hypervisor to increase the number of concurrent virtual machines by consolidating identical memory pages. The article covers the ideas behind KSM (such as storage de-duplication), its implementation, and how you manage it.

5 of 93 comments (clear)

  1. This Is Just One Reason ... by WrongSizeGlass · · Score: 4, Interesting

    ... why OSS is the way things should be. You'll never see this type of documentation, and this type of detail, available to anyone and everyone from closed source software. I love my Mac, and supporting Windows pays my bills, but OSS is unlike any other animal out there.

    1. Re:This Is Just One Reason ... by abigor · · Score: 4, Informative

      OS X's kernel is open source (BSD license) and very well documented.

  2. Re:First Post by Anonymous Coward · · Score: 5, Informative

    From the article:
    "Going further

    Linux is not alone in using page sharing to improve memory efficiency, but it is unique in its implementation as an operating system feature. VMware's ESX server hypervisor provides this feature under the name Transparent Page Sharing (TPS), while XEN calls it Memory CoW. But whatever the name or implementation, the feature provides better memory utilization, allowing the operating system (or hypervisor, in the case of KVM) to over-commit memory to support greater numbers of applications or VMs. You can find KSM—and many other interesting features—in the latest 2.6.32 Linux kernel."

  3. Re:First Post by Abcd1234 · · Score: 5, Insightful

    If your OS isn't sharing duplicate memory blocks already, you're using a shitty OS. (Linux already shares dup read only blocks for many things, like most modern OSes).

    Umm, no.

    Most modern OSes share memory for executable images and shared libraries. In addition, some OSes, such as Linux, support copy-on-write semantics for memory pages in child processes created with fork (note, Solaris is an example of an OS that *doesn't* do this).

    Aside from that, there is no automated sharing of memory between processes. Frankly, I have no idea where you got the idea there was.

  4. Re:First Post by Abcd1234 · · Score: 4, Insightful

    Aside from all the places that memory is shared between processes, theres no sharing between processes ... yea, I totally get you ...

    That's exactly right. I pointed out all the places. *All of them*. And there's *two*: shared, read-only executable pages, and the heaps of children created by COW-enabled forks. That's it. That's all.

    So any new technology for memory de-duping is impressive because, traditionally, it just ain't done. Which directly contradicts the content of your original post.

    Perhaps now you understand?