|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] xc_domain_translate_gpfn_list vanished from unstable
On Jan 7, 2007, at 12:35 PM, Keir Fraser wrote:
On 7/1/07 5:27 pm, "Tomáš Kouba" <tomas@xxxxxxxx> wrote:
I am sorry, I don't understand one thing: if the translated-guest
addresses are always referenced by pseudo-physical address (or pfn?)
then why the "xc_map_foreign_range" has its last parameter as mfn and
not pfn?
xc_map_foreign_* functions all actually take 'gmfn' -- that is the
guest-apparent machine address. Paravirtualised guests usually see
machine
addresses, so gmfn==mfn. HVM guests have the translation done for
them by
the hypervisor, so they see gmfn==gpfn (guest pseudophysical frame
number).
Function prototypes and comments in xenctrl.h have unfortuantely
not been
updated to reflect this change.
Thanks for clearing this up, the xenctrl header and libxc source
code do not indicate that the "mfn" parameter
is in fact not an mfn but a gpfn.
But I think it has been causing me some difficulty.
I've been confused trying to map pages based on known guest virtual
addresses from HVM's
for some time. For paravirtualized guests this is as easy as using
xc_translate_foreign_address
followed by xc_map_foreign_range on the result, but this fails for
HVM's (changeset 13282:9865145e53eb)
when xc_translate_foreign_address claims that it is unable to map the
PD of the HVM.
Presumably this is because the cr3 value returned by
xc_vcpu_getcontext holds the machine frame number
page tables (presumably this is the guest cr3 so the page tables map
gvas to gpfns and not the host cr3 that
is used by the hardware to map gvas to gmfns).
Can you suggest an approach that would actually work?
thanks
-aaron
-- Keir
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|