|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] Dom heap virtual address question
>From: Daniel Magenheimer
>Sent: 2008年8月27日 7:49
>
>Silly x86-related memory question from someone who has only
>used global virtual address machines for too many years:
>
>Is it possible to take the result of an alloc_domheap_pages()
>(struct page_info *) and convert this to a virtual address
>that can be used at a later time in the hypervisor (not
>in a domain)? E.g.
>
>va = mfn_to_virt(page_to_mfn(alloc_domheap_pages()))
> :
>(many seconds later, still in hypervisor)
> :
>a = *(unsigned int *)va;
This only applies to 64bit xen which directly maps all memory
in a large enough virtual address range. For 32bit xen, mfn_to_virt
only applies to xenheap pages.
>
>Or is it necessary to do a va = map_domain_page(mfn)
>then unmap_domain_page(va) around each usage? (And
>if so do I need the _global version of these?)
map/unmap_domain_page is cleaner wrap, suitable for both
32bit and 64bit xen. For 64bit xen, it's actually a macro to
mfn_to_virt and thus map/unmap is light. you can use _global
version if you'd like to access that page from any domain
context and don't want to local map/unmap frequently.
Thanks,
Kevin
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|