WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] sharing memory between qemu and domu without grant table

To: "Keir Fraser" <keir@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] sharing memory between qemu and domu without grant tables or vmexits...
From: "James Harper" <james.harper@xxxxxxxxxxxxxxxx>
Date: Sun, 17 Oct 2010 19:23:17 +1100
Cc:
Delivery-date: Sun, 17 Oct 2010 01:29:11 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C8E06628.26353%keir@xxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <AEC6C66638C05B468B556EA548C1A77D01B1FE36@trantor> <C8E06628.26353%keir@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acttu/Egb94n0I/5RaamETF7xAIFyAAEiHm1AAF2h7A=
Thread-topic: [Xen-devel] sharing memory between qemu and domu without grant tables or vmexits...
> 
> > Is it possible to share a page of memory between qemu in dom0 and
domu
> > without using grant tables and without domu access to that page
causing
> > a vmexit?
> 
> Pick a reserved page in guest's physical memory map. Communicate that
> address to both domU and qemu somehow (e.g., one might pick it and
> communicate it to the other; or it may be a statically assigned
well-known
> address; or whatever). Qemu can map that page, as obviously can the
guest.
> 
> To get that reserved page, you could: (1) pick an unused frame slot in
the
> hole below 4GB (e.g., between LAPIC and IOAPIC mappings) allocate a
page
> there from qemu, or hvmloader, or domU, or...; or (2) you could have
hvm
> domain builder, or hvmloader, reserve a page from the guest's regular
RAM
> space, and update guest e820 appropiately to indicate page is
reserved.
> Communicate that address as necessary, and away you go.
> 

I'm still not sure I understand it all... might the following work them:
1. Allocate a page of memory in my windows code
2. Write the PFN to a known io port (with some sort of interlock so that
a random io write that hits that port isn't going to do anything bad)
3. qemu is called when the io port is triggered and maps the page to its
own space

Can qemu map an actual page of domu memory without a grant reference
(remember, grant table is not set up at this point)? Or do I need to map
a page of shared memory into the memory hole I allocated?

What calls should I be making in qemu to actually map the page?

Thanks

James

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel