public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC][PATCH 0/5] Memory merging driver for Linux
@ 2008-01-21 16:05 Izik Eidus
       [not found] ` <4794C2E1.8040607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Izik Eidus @ 2008-01-21 16:05 UTC (permalink / raw)
  To: kvm-devel, andrea-atKUWr5tajBWk0Htik3J/w,
	avi-atKUWr5tajBWk0Htik3J/w, dor.laor-atKUWr5tajBWk0Htik3J/w,
	linux-mm-Bw31MaZKKs3YtjvyW6yDsg, yaniv-atKUWr5tajBWk0Htik3J/w

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.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-01-24  9:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-21 16:05 [RFC][PATCH 0/5] Memory merging driver for Linux Izik Eidus
     [not found] ` <4794C2E1.8040607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-23 17:05   ` Rik van Riel
     [not found]     ` <20080123120510.4014e382-Fuq27k0DHcCSkoNiqTzCLQ@public.gmane.org>
2008-01-23 17:54       ` Andrea Arcangeli
     [not found]         ` <20080123175444.GH7141-lysg2Xt5kKMAvxtiuMwx3w@public.gmane.org>
2008-01-23 18:11           ` Izik Eidus
2008-01-24  5:38       ` Avi Kivity
2008-01-23 23:10   ` Chris Wright
     [not found]     ` <20080123231037.GA3629-JyIX8gxvWYPr2PDY2+4mTGD2FQJk+8+b@public.gmane.org>
2008-01-24  5:40       ` Avi Kivity
     [not found]         ` <479824EA.7070603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2008-01-24  9:26           ` Izik Eidus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox