<br><br><div class="gmail_quote">On Wed, May 2, 2012 at 2:11 PM, Howard Su <span dir="ltr">&lt;<a href="mailto:howard0su@gmail.com" target="_blank">howard0su@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div class="im">On Wed, Apr 18, 2012 at 2:39 AM, Ramshankar <span dir="ltr">&lt;<a href="mailto:ramshankar.venkataraman@oracle.com" target="_blank">ramshankar.venkataraman@oracle.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Our current page fusion logic involves knowledge from within the guest<br>
as to what can be fused. Instead of pegging through the entire guest<br>
memory using some-sort of daemon/service and maintaining hashes and<br>
last-touch times of pages and comparing them, our guest additions<br>
(currently page fusion implemented only for Windows guests) gives hints<br>
about which pages are most likely candidates for fusion.<br>
<br>
This saves a lot of time than sweeping the memory but it also means we<br>
will not be squeezing out every last bit. We made this trade-off<br>
decision because we felt this is a good approach for the fulfilling the<br>
objective.<br></blockquote></div><div>I read a project <a href="http://code.google.com/p/uksm" target="_blank">http://code.google.com/p/uksm</a> which is improving KSM&#39;s scan speed and result. It is called UKSM.</div>
<div>in a type of hardware, Interl Core 2 9300, KSM scans page at 260M/s. UKSM can hit 477MB/s - 923M/s, even 627- 2446MB/s in the pages which doesn&#39;t contain duplications. I think the speed is a big factor here to do the tradeoff. full memory scan can avoid the duplication of anony memory pages. will this change your decision about the tradeoff?</div>
<div><div class="h5">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
A daemon on the guest runs which locates common system files/dlls/ro<br>
kernel memory etc. paged-in on the guest and reports the physical pages<br>
that can be deduplicated. We don&#39;t scan the guest memory actively<br>
looking for fusion candidates. If the guest touches the pages for write<br>
access that&#39;ll be marked as no longer a candidate. Because of<br>
contextually knowledge from within the guest, VirtualBox&#39;s page fusion<br>
identifies only long term fusion candidates that are very unlikely to be<br>
touched often.<br>
<br>
That&#39;s just the broad overview.<br>
<br>
Regards,<br>
Ram<br>
<div><div><br>
<br>
On 04/16/12 05:23 PM, Alexey Eromenko wrote:<br>
&gt;&gt;<br>
&gt;&gt; What kind if obstacles would I face if I tried to implemented the<br>
&gt;&gt; same behavior (Scan processes) for Linux guests? I plan on scanning every<br>
&gt;&gt; process then check the memory maps from /proc/&lt;pid&gt;/maps. If the permissions<br>
&gt;&gt; are set to r only or rx then I&#39;ll register the pages with the host. This<br>
&gt;&gt; wouldn&#39;t cover the process it self, but a major portion of<br>
&gt;&gt; the wasted memory.<br>
&gt;&gt;<br>
&gt;&gt; Sounds simple (everything does these days) and I plan to work it. However, I<br>
&gt;&gt; just need an expert to give me the go-ahead since this is all new to me.<br>
&gt;<br>
&gt; I think before undertaking such a massive effort, it pays off to<br>
&gt; compare existing (Open-Source) technologies: Linux KSM vs. VBox<br>
&gt; PageFusion.<br>
&gt;<br>
&gt; Why ?<br>
&gt; KSM *avoids* the need of developing guest-side drivers altogether.<br>
&gt; With KSM all mem dedup logic is done host-side-only, so all legacy and<br>
&gt; future OSes work out-of-the-box.<br>
&gt; VBox PageFusion requires GuestAdditions, which means developing and<br>
&gt; testing (!) drivers for lots of guest OSes and OS versions.<br>
&gt; Developing KSM-equivalent for VBox may pay off better than extending<br>
&gt; VBox PageFusion to Linux guests (this will require writing new Linux<br>
&gt; kernel drivers).<br>
&gt; KSM itself is Linux-host-only, so cannot be used directly. (While VBox<br>
&gt; PageFusion is Windows-guest-only ATM)<br>
&gt; KSM-like system will require only host-side development and testing.<br>
&gt;<br>
&gt; What needs to be considered ? (KSM-like approach vs. VBox PageFusion approach)<br>
&gt; 1. performance - how much CPU usage does it takes ?<br>
&gt; 2. speed convergence [related to 1.] - how much time does it take to<br>
&gt; find 1 GiB of RAM and dedup it ?<br>
&gt; 3. efficiency - how many pages were actually shared ?<br>
&gt; 4. any other advantages/disadvantages of both approaches.<br>
&gt;<br>
&gt; Disclaimer: I have NOT tested either solution. Just my 2 cents.<br>
<br>
<br>
</div></div><div><div>_______________________________________________<br>
vbox-dev mailing list<br>
<a href="mailto:vbox-dev@virtualbox.org" target="_blank">vbox-dev@virtualbox.org</a><br>
<a href="https://www.virtualbox.org/mailman/listinfo/vbox-dev" target="_blank">https://www.virtualbox.org/mailman/listinfo/vbox-dev</a><br>
</div></div></blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>-Howard<br>
</font></span></blockquote></div><div><br></div>I found a wiki page + code change here <br><a href="https://github.com/xianai/Ultra-KSM-for-Linux-2.6.33.2-/wiki">https://github.com/xianai/Ultra-KSM-for-Linux-2.6.33.2-/wiki</a> <br clear="all">
<div><br></div>-- <br>-Howard<br>