|
|
|
|
|
|
|
|
|
|
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:
> 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.
Maybe your gmfn is wrong. 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);
direct_kernel_remap_pfn_range(((unsigned long)) area->addr, gmfn,
PAGE_SIZE*num_pages, prots, domU_id);
Now I can read and write the domU memory from dom0 kernel!
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
|
|
|
|
|