[vbox-dev] Page Fusion -- Validate my progress please.

Ribhi Kamal rbhkamal at gmail.com
Tue May 1 15:21:23 GMT 2012


Of course, I forgot to attach the code.

On Tue, May 1, 2012 at 11:16 AM, Ribhi Kamal <rbhkamal at gmail.com> wrote:

> 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.
>
> 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:
> 1- Ignore the vboxguest module/service: The windows guest additions do
> this, is it really needed?
> 2- Filter out pages that are NOT read or execute only.
> 3- Find out if the code is safe (locking wise)
> 4- ?
>
> Questions:
> (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/libc-2.11.3.so" below, I would
> be registering four pages -- 0x37ff3000, 0x38131000, 0x38132000
> and 0x38134000 -- each one has a PAGH_SIZE length.
>
> (B) For scanning processes, is it safe to just add all the pages for files
> under /lib /bin /usr and /sbin?
>
> (C) Is my attached code accessing vm_area_struct safely?
>
> Again, I appreciate any comments/help.
>
> My test module populates the list of physical address an output like below.
>  udevd [411]
>   '/lib/libc-2.11.3.so' vm_mm:0x726ee9c  mmap_base:0x40000000
>  vm_start:0x4003b000 vm_end:0x40179000
>  phy_start:0x37ff3000 phy_end:0x38131000
>   '/lib/libc-2.11.3.so' vm_mm:0x726ee9c  mmap_base:0x40000000
>  vm_start:0x40179000 vm_end:0x4017a000
>  phy_start:0x38131000 phy_end:0x38132000
>   '/lib/libc-2.11.3.so' vm_mm:0x726ee9c  mmap_base:0x40000000
>  vm_start:0x4017a000 vm_end:0x4017c000
>  phy_start:0x38132000 phy_end:0x38134000
>   '/lib/libc-2.11.3.so' vm_mm:0x726ee9c  mmap_base:0x40000000
>  vm_start:0x4017c000 vm_end:0x4017d000
>  phy_start:0x38134000 phy_end:0x38135000
>
>
> udevd [412]
>   '/lib/libc-2.11.3.so' vm_mm:0x726e2cc  mmap_base:0x40000000
>  vm_start:0x4003b000 vm_end:0x40179000
>  phy_start:0x37ff3000 phy_end:0x38131000
>   '/lib/libc-2.11.3.so' vm_mm:0x726e2cc  mmap_base:0x40000000
>  vm_start:0x40179000 vm_end:0x4017a000
>  phy_start:0x38131000 phy_end:0x38132000
>   '/lib/libc-2.11.3.so' vm_mm:0x726e2cc  mmap_base:0x40000000
>  vm_start:0x4017a000 vm_end:0x4017c000
>  phy_start:0x38132000 phy_end:0x38134000
>   '/lib/libc-2.11.3.so' vm_mm:0x726e2cc  mmap_base:0x40000000
>  vm_start:0x4017c000 vm_end:0x4017d000
>  phy_start:0x38134000 phy_end:0x38135000
>
>
> --
> -- Ribhi
>



-- 
-- Ribhi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20120501/1ac1d334/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: showpages.c
Type: text/x-csrc
Size: 2694 bytes
Desc: not available
URL: <http://www.virtualbox.org/pipermail/vbox-dev/attachments/20120501/1ac1d334/attachment.bin>


More information about the vbox-dev mailing list