linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "yunfeng zhang" <zyf.zeroos@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: Improvement on memory subsystem
Date: Tue, 18 Jul 2006 18:03:54 +0800	[thread overview]
Message-ID: <4df04b840607180303i3d8c8bd0o4d2a24752ec2e150@mail.gmail.com> (raw)

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 2.6.16.1 and later. The
following section is divided into two parts by the implmentation difficulty.

Minor improvement.
1. Apply dlmalloc arithmetic (http://g.oswego.edu/dl/html/malloc.html) 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
use.
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
pressure.
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 http://www.cublog.cn/u/21764/upfile/060718173355.zip 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): http://zeroos.cublog.cn/

Regarding
                                                            Yunfeng Zhang

             reply	other threads:[~2006-07-18 10:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-18 10:03 yunfeng zhang [this message]
2006-07-18 12:18 ` Improvement on memory subsystem Valdis.Kletnieks
2006-07-19  3:44   ` yunfeng zhang
2006-07-19  9:18   ` Ian Stirling
2006-07-19 14:56     ` Valdis.Kletnieks
2006-07-18 16:25 ` Pekka Enberg
2006-07-19  3:21   ` yunfeng zhang
2006-07-19  8:30     ` Pekka Enberg
2006-07-19 10:13       ` yunfeng zhang
2006-07-19 10:35         ` Pekka Enberg
2006-07-24  9:01 ` yunfeng zhang
2006-07-24 14:55   ` David Lang
2006-07-25  8:33     ` yunfeng zhang
2006-08-23 10:39 ` yunfeng zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4df04b840607180303i3d8c8bd0o4d2a24752ec2e150@mail.gmail.com \
    --to=zyf.zeroos@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).