|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-devel
Re: [Xen-devel] Mapping hvm guest pages in Dom0 
| On Thu, Oct 9, 2008 at 2:56 AM, Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>  wrote: 
Am Dienstag, 7. Oktober 2008 schrieb Satya:
 Maybe your gmfn is wrong.> If you have the gmfn's from the HVM domU (I'am not sure where you get this>
 > > from if you want to keep your guest "pure" HVM) and the domU id, you can
 > > map
 > > the domU memory into the dom0 kernel memory with
 > >
 > > struct vm_struct area;
 > > area = alloc_vm_area(num_pages * PAGE_SIZE);
 > > direct_kernel_remap_pfn_range(((unsigned long)) area->addr, gmfn,
 > >                                PAGE_SIZE*num_pages, prots, domU_id);
 >
 > I did that but the hypercall from __direct_remap_pfn_range() errors out
 > (-EINVAL) if prots include _PAGE_PRESENT. Without this flag the kernel
 > cannot handle reads and writes to these pages (will essentially page
 > fault). Any thoughts?
 >
 > ./satya
 >
 > ps: Thanks to everyone for the replies.
 
 
 yeah, I only have the host machine frame numbers. I don't have the
'gmfn' - which is I believe is the guest's view of this machine frame number. Is there a function
f(hostmfn, domid) that will give me the corresponding gmfn? i.e I
should be able to read the guest's p2m table. I sent out another message to xen-devel asking the same question, but I don't see it posted to the list yet.
 
 
 
Are you seeing a message on serial console or 'xm log' ?
 Well 'xm dmesg' showed nothing relevant.
 
 
 What I do is:
 domU gives the gmfn's to dom0
 prot = __pgprot(_KERNPG_TABLE);      // _KERNPG_TABLE contains _PAGE_PRESENT
 
 area = alloc_vm_area(num_pages * PAGE_SIZE);Now I can read and write the domU memory from dom0 kernel!direct_kernel_remap_pfn_range(((unsigned long)) area->addr, gmfn,
 PAGE_SIZE*num_pages, prots, domU_id);
 
 
 You can find an example in xenoprof part in the dom0 linux kernel:
 xenoprof_arch_map_shared_buffer() or xenoprof_arch_set_passive()
 in arch/i386/oprofile/xenoprof.c
 
 Thanks, that was helpful.
 
 ./satya
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
 |  | 
  
    |  |  |