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
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel