<div>Hi, I know that you are very busy but I would really appreciate it if someone could find the time to make sure that I'm the right path.</div><div><br></div>As an exercise, I'm implementing Page Fusion for Linux guests. I setup my dev environment (with UML) and wrote some code to pull the physical address of each memory area for each process. There is still a lot of work to be done before I merge my stuff to vboxguest, like the following:<div>

1- Ignore the vboxguest module/service: The windows guest additions do this, is it really needed?</div><div>2- Filter out pages that are NOT read or execute only.</div><div>3- Find out if the code is safe (locking wise)</div>

<div>4- ?</div><div><br></div><div>Questions:</div><div><div>(A) My most important question is what exactly I should be passing down to the hypervisor? The physical address of the pages and their length, correct? So in the case of "/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>" below, I would be registering four pages -- 0x37ff3000, 0x38131000, 0x38132000 and 0x38134000 -- each one has a PAGH_SIZE length.</div>

<div><br></div><div>(B) For scanning processes, is it safe to just add all the pages for files under /lib /bin /usr and /sbin?</div><div><br></div><div>(C) Is my attached code accessing vm_area_struct safely?</div><div><br>

</div><div>Again, I appreciate any comments/help.</div><div><br></div><div>My test module populates the list of physical address an output like below.</div><div><div> udevd [411]</div><div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726ee9c  mmap_base:0x40000000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x4003b000 vm_end:0x40179000</div><div><span class="Apple-tab-span" style="white-space:pre">       </span> phy_start:0x37ff3000 phy_end:0x38131000</div>

<div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726ee9c  mmap_base:0x40000000</div><div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x40179000 vm_end:0x4017a000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> phy_start:0x38131000 phy_end:0x38132000</div><div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726ee9c  mmap_base:0x40000000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x4017a000 vm_end:0x4017c000</div><div><span class="Apple-tab-span" style="white-space:pre">       </span> phy_start:0x38132000 phy_end:0x38134000</div>

<div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726ee9c  mmap_base:0x40000000</div><div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x4017c000 vm_end:0x4017d000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> phy_start:0x38134000 phy_end:0x38135000</div><div><br></div><div><br></div><div>udevd [412]</div><div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726e2cc  mmap_base:0x40000000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x4003b000 vm_end:0x40179000</div><div><span class="Apple-tab-span" style="white-space:pre">       </span> phy_start:0x37ff3000 phy_end:0x38131000</div>

<div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726e2cc  mmap_base:0x40000000</div><div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x40179000 vm_end:0x4017a000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> phy_start:0x38131000 phy_end:0x38132000</div><div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726e2cc  mmap_base:0x40000000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x4017a000 vm_end:0x4017c000</div><div><span class="Apple-tab-span" style="white-space:pre">       </span> phy_start:0x38132000 phy_end:0x38134000</div>

<div>  '/lib/<a href="http://libc-2.11.3.so">libc-2.11.3.so</a>' vm_mm:0x726e2cc  mmap_base:0x40000000</div><div><span class="Apple-tab-span" style="white-space:pre">      </span> vm_start:0x4017c000 vm_end:0x4017d000</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span> phy_start:0x38134000 phy_end:0x38135000</div></div><div><br></div><div><br></div>-- <br>-- Ribhi<br>
</div>