From: Izik Eidus <izike@qumranet.com>
To: kvm-devel <kvm-devel@lists.sourceforge.net>,
andrea@qumranet.com, avi@qumranet.com, dor.laor@qumranet.com,
linux-mm@kvack.org, yaniv@qumranet.com
Subject: [RFC][PATCH 0/5] Memory merging driver for Linux
Date: Mon, 21 Jan 2008 18:05:53 +0200 [thread overview]
Message-ID: <4794C2E1.8040607@qumranet.com> (raw)
when kvm is used in production servers, many times it run the same
guests operation systems more than once
the idea of this module is to find the identical pages in diffrent
guests and to share them so we can save memory,
due to the fact that many guests run identical operation systems, alot
of data in the ram is equal between the guests
this module find this identical data (pages) and merge them into one
single page
this new page is write protected so in any case the guest will try to
write to it do_wp_page will duplicate the page
this module simply go over a list of pages that were registered, and
find the identical pages (using hash table)
the pages that it scan are anonymous, each time that it find an
identical pages it create a file mapped
(right now it is just kernel allocated) page that will be the shared page,
as for now i am missing swapping support (will add soon using non-linear
vmas)
this module can be used for every other purpuse and work without kvm
(i used it for qemu)
to make it work for kvm, the mmu notifers sent by andrea should be used
i added 2 new functions to the kernel
one:
page_wrprotect() make the page as read only by setting the ptes point to
it as read only.
second:
replace_page() - replace the pte mapping related to vm area between two
pages
few numbers:
for started windows i can share almost the whole memory (as it zero all
the pages),
so i can start much much more windows guests than i have memory (as long
as no one touch it)
for linux guests i was able to share 800mb+ for 4 centos guests that
each had 512mb memory allocated to
(again it was without work load, and they ran X)
--
woof.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2008-01-21 16:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-21 16:05 Izik Eidus [this message]
2008-01-23 17:05 ` [kvm-devel] " Rik van Riel
2008-01-23 17:54 ` Andrea Arcangeli
2008-01-23 18:11 ` Izik Eidus
2008-01-24 5:38 ` Avi Kivity
2008-01-23 23:10 ` Chris Wright
2008-01-24 5:40 ` Avi Kivity
2008-01-24 9:26 ` Izik Eidus
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=4794C2E1.8040607@qumranet.com \
--to=izike@qumranet.com \
--cc=andrea@qumranet.com \
--cc=avi@qumranet.com \
--cc=dor.laor@qumranet.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-mm@kvack.org \
--cc=yaniv@qumranet.com \
/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