From: Jacob Gorm Hansen <jacob@melon.dk>
To: Michael Vrable <mvrable@cs.ucsd.edu>
Cc: Xen-devel@lists.sourceforge.net
Subject: Re: Copy-on-write memory to allow many more xenU domains per machine
Date: Tue, 02 Nov 2004 21:55:42 +0100 [thread overview]
Message-ID: <4187F44E.303@melon.dk> (raw)
In-Reply-To: <20041025153810.A18297@cs.ucsd.edu>
Michael Vrable wrote:
> My current status: I've been working first on using shadow page tables
> to hide the actual machine addresses of pages from domains. I'm only
> partway through doing that, and may yet go back and change how I'm
> approaching that (I'm still learning bits about how Xen works as I'm
> going through to modify the code; I'm also thinking now of changes that
> would be good to make copy-on-write easier later). I'm trying to write
> up some of my design thoughts; if anyone here is interested or would
> like to offer comments, I can post that here.
>
> David mentioned implementing a clone() for VMs; that is something that
> I'd also like to try out. (It should be possible to test that after
> only the first step of hiding machine addresses, before copy-on-write is
> implemented, though copy-on-write will make it efficient.
What about having a special variant of the pte-update operation, which
takes as input a pointer to a pte-entry, and will change that entry into
a read-only mapping of the same page contents, though perhaps with a
different frame number in the pte.
Then Xen can lookup the page contents in a global hashtable or binary
tree (which might be faster, because you don't need to scan the entire
page contents unless you have a match), and see if there is a matching
copy somewhere. If there is, it can decrease a refcount for the page
provided by the user, change the mapping to point to the matching page,
and free the user's page if the refcount has reached zero.
In this way, domains become responsible for sharing memory across the
system, but only pages that are likely candidates for sharing (kernel
text, user process text) are actually scanned, and you don't get the
overhead of shadow page tables.
Jacob
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
next prev parent reply other threads:[~2004-11-02 20:55 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-08 8:59 Shadow page tables? Chengyuan Li
2004-10-08 9:11 ` Keir Fraser
2004-10-10 2:52 ` Chengyuan Li
2004-10-12 18:50 ` Michael Vrable
2004-10-12 20:09 ` Andrew Warfield
2004-10-13 1:53 ` Michael Vrable
2004-10-21 8:38 ` Peri Hankey
2004-10-25 12:12 ` Copy-on-write memory to allow many more xenU domains per machine Peri Hankey
2004-10-25 12:21 ` Ian Pratt
2004-10-25 18:24 ` David Hopwood
2004-10-25 19:52 ` Ronald G. Minnich
2004-10-25 20:19 ` Ian Pratt
2004-10-25 22:38 ` Michael Vrable
2004-10-26 8:15 ` Peri Hankey
2004-10-26 18:30 ` Michael Vrable
2004-10-26 19:43 ` Ian Pratt
2004-10-26 22:19 ` Michael Vrable
2004-11-02 20:55 ` Jacob Gorm Hansen [this message]
2004-11-02 21:33 ` Ian Pratt
2004-11-02 21:50 ` urmk
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=4187F44E.303@melon.dk \
--to=jacob@melon.dk \
--cc=Xen-devel@lists.sourceforge.net \
--cc=mvrable@cs.ucsd.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.