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

[Xen-devel] How to map multiple pages from a DomU to Dom0?



I tried to use alloc_pages() in DomU to allocate 16 pages and use
direct_remap_area_pages() in Dom0 to map that memory region into Dom0, the code 
is as following:

DomU:
svd_ring = (svdif_ring_t *) alloc_pages(GFP_KERNEL, 4);
then send (virt_to_machine(svd_ring) >> PAGE_SHIFT) to Dom0

Dom0:
error = direct_remap_area_pages(&init_mm, VMALLOC_VMADDR(vma->addr),
                                    mapcmd.shmem_addr<<PAGE_SHIFT,
                                    PAGE_SIZE*16,
                                    prot, 1);
Here, mapcmd.shmem_addr=(virt_to_machine(svd_ring) >> PAGE_SHIFT);

it seems to remap successfully, but when I tried to access vma->addr in
Dom0, DomU crashed. I don't know why. :(

Can someone give me some advice?

I also noticed that
HYPERVISOR_multicall(__HYPERVISOR_update_va_mapping_otherdomain) seems to
be able to remap memory. But I haven't figure out how to use that
hypervisor call.

So what is the right way to map memory pages from DomU to Dom0?

Thanks in advance!

-x


-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

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