Christoph Lameter wrote:
> On Tue, 15 Jan 2008, Avi Kivity wrote:
>
>   
>>> Duh. Impossible. Two instances of Linux cannot share page structs. So how
>>> are you doing this? Or is this just an idea?
>>>       
>> I was describing one Linux host running two guest instances.  The page 
>> structs
>> are in the host, so they are shared by mmap().
>>     
>
> Ahh.. Okay I was talking about a guest exporting its memory to another 
> guest.
>   

That's not very different, if they are on the same host?

>  
>   
>> kvm userspace is just an ordinary host process, it can mmap() any file it
>> likes and then assign that virtual memory range to the guest (as guest
>> physical memory).
>>     
>
> But then the guest does not have its own page struct to manage the memory.
>
>   

Why not?  It's just a block of memory as far as the guest is concerned.  
It's entirely up to it whether to create page structs or not.

Example:

qemu 1:

   p = mmap("/dev/shm/blah", size, ... );
   ioctl(vm_fd, KVM_CREATE_MEMORY_REGION_USER, { p, size, 0x10000000, 
... });

qemu 2:

   p = mmap("/dev/shm/blah", size, ... );
   ioctl(vm_fd, KVM_CREATE_MEMORY_REGION_USER, { p, size, 0x10000000, 
... });

Physical address 0x10000000, of both guests, would map to the same page.

Of course, ordinary Linux kernels can't do much with memory that is 
shared with another guest.

I've a feeling we need a whiteboard.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
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/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to