[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] sharing memory between qemu and domu without grant tables or vmexits...


  • To: "Keir Fraser" <keir@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • 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
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.