On Sat, Jan 12, 2008 at 09:51:56PM +0200, Avi Kivity wrote:
> Christoph Lameter wrote:
>> On Thu, 10 Jan 2008, Avi Kivity wrote:
>>
>>   
>>> Actually sharing memory is possible even without this patch; one simply
>>> mmap()s a file into the address space of both guests.  Or are you 
>>> referring to
>>> something else?
>>>     
>>
>> A file from where? If a file is read by two guests then they will have 
>> distinct page structs.
>>
>>   
>
> Two kvm instances mmap() the file (from anywhere) into the guest address 
> space.  That memory is shared, and will be backed by the same page structs 
> at the same offset.

That sounds nice, but...

For larger machine configurations, we have different memory access
capabilities.  When a partition that is located close to the home node
of the memory accesses memory, it is normal access.  When it is further
away, they get special access to the line.  Before the shared line is
sent to the reading node, it is converted by the memory controller into
an exclusive request and the reading node is handed the only copy of
the line.  If we gave a remote kernel access to the page, we would also
open the entire owning nodes page tables up to speculative references
which effectively would be viewed by hardware as cache-line contention.

Additionally, we have needs beyond memory backed by files.  Including
special devices which do not have struct pages at all (see mspec.c).

Thanks,
Robin

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to