Improvement on memory subsystem

From: yunfeng zhang
Date: Tue Jul 18 2006 - 06:01:59 EST

Dear Linux core memory developers:

It's my pleasure to show some ideas in my OS named Zero to you, the features
listed below, I think, can be introduced into Linux and later. The
following section is divided into two parts by the implmentation difficulty.

Minor improvement.
1. Apply dlmalloc arithmetic ( on memory
page allocation instead of buddy arithmetic. As the result, we can get more
consecutive memory pages easily.
2. Read-ahead process during page-in/out (page fault or swap out) should be
based on its VMA to enhance IO efficiency instead of the relative physical pages
in swap space.
3. All slabs are all off-slab type. Store slab instance in page structure.
4. Introduce PrivateVMA class and discard anonymous VMA to simplify the
relationship between VMA and its pages. When a VMA is split/combined, update the
member mapping of all relating pages. In fact, those methods should be rare to
5. Add a lock bit in pte. Note, the feature want CPU preserves a programer
available bit in pte. So we can avoid to allocate page before locking the pte
during do_anonymous_page, in other words, relief memory page allocation
6. Swap out pages by scaning all vmas linking to Zone instead of scaning pages.

Major improvement.
1. No COW on anonymous vma.
2. Dynamic page mapping on core space. It's the further discussion about former
item 1 in minor improvment section, other features on it is applying DLPTE
arithmetic on core PTE array, introducing RemapDaemon.

You can download to find
more about those features and it's convenient to illustrate my idea for there is
a lots of diagrams in it. Summary of the file is MemoryArchitecture.pdf is the
documentation of my Zero OS memory subsystem. Code in Implementation/memory/
shows some sample implementation about my memory subsystem. Note, not like other
OS, I do like to write documentation and my OS is far from completion, even its
memory subsystem.

My blog (Chinese site):

Yunfeng Zhang
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at