* Distinguishing gpfn, gmfn, mfn, and pfn
@ 2013-05-29 1:03 Sengul Thomas
2013-05-29 7:27 ` Keir Fraser
0 siblings, 1 reply; 3+ messages in thread
From: Sengul Thomas @ 2013-05-29 1:03 UTC (permalink / raw)
To: Xen Devel
Hi xen developers,
I'm confused about the actual usage of the four types of frames.
I can find the definition in xen/include/xen/mm.h, but would like
to check my understanding is correct:
1) Is 2-stage MMU-supported (e.g., ARMv7 VE) translation
auto-translated mode? Then, gpfn == gmfn.
2) Is gmfn --> mfn mapping the p2m table?
3) Paravirtualized x86 guest will have gpfn != gmfn, and it is
quite hard to imagine. Could you tell me the difference
between gpfn and gmfn? (for instance, when it is used)
thanks always,
Thomas
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: Distinguishing gpfn, gmfn, mfn, and pfn
2013-05-29 1:03 Distinguishing gpfn, gmfn, mfn, and pfn Sengul Thomas
@ 2013-05-29 7:27 ` Keir Fraser
2013-05-29 10:09 ` George Dunlap
0 siblings, 1 reply; 3+ messages in thread
From: Keir Fraser @ 2013-05-29 7:27 UTC (permalink / raw)
To: Sengul Thomas, Xen Devel
On 29/05/2013 02:03, "Sengul Thomas" <thomas.sengul@gmail.com> wrote:
> Hi xen developers,
>
> I'm confused about the actual usage of the four types of frames.
> I can find the definition in xen/include/xen/mm.h, but would like
> to check my understanding is correct:
>
> 1) Is 2-stage MMU-supported (e.g., ARMv7 VE) translation
> auto-translated mode? Then, gpfn == gmfn.
>
> 2) Is gmfn --> mfn mapping the p2m table?
>
> 3) Paravirtualized x86 guest will have gpfn != gmfn, and it is
> quite hard to imagine. Could you tell me the difference
> between gpfn and gmfn? (for instance, when it is used)
There are basically two modes:
gmfn==gpfn: Guest does not see real machine physical addresses. p2m is done
by the hypervisor. This is like x86 HVM guests.
gmfn==mfn: Guest does see real machine physical addresses. Typically the
guest will have its own concept of a flat pseudophysical address space that
it maps to real machine addresses with its own p2m table. This is like x86
pure PV guests.
ARM7 VE does indeed support HVM for ARM, and gmfn==gpfn.
-- Keir
>
> thanks always,
> Thomas
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Distinguishing gpfn, gmfn, mfn, and pfn
2013-05-29 7:27 ` Keir Fraser
@ 2013-05-29 10:09 ` George Dunlap
0 siblings, 0 replies; 3+ messages in thread
From: George Dunlap @ 2013-05-29 10:09 UTC (permalink / raw)
To: Keir Fraser; +Cc: Sengul Thomas, Xen Devel
On Wed, May 29, 2013 at 8:27 AM, Keir Fraser <keir.xen@gmail.com> wrote:
> On 29/05/2013 02:03, "Sengul Thomas" <thomas.sengul@gmail.com> wrote:
>
>> Hi xen developers,
>>
>> I'm confused about the actual usage of the four types of frames.
>> I can find the definition in xen/include/xen/mm.h, but would like
>> to check my understanding is correct:
>>
>> 1) Is 2-stage MMU-supported (e.g., ARMv7 VE) translation
>> auto-translated mode? Then, gpfn == gmfn.
>>
>> 2) Is gmfn --> mfn mapping the p2m table?
>>
>> 3) Paravirtualized x86 guest will have gpfn != gmfn, and it is
>> quite hard to imagine. Could you tell me the difference
>> between gpfn and gmfn? (for instance, when it is used)
>
> There are basically two modes:
>
> gmfn==gpfn: Guest does not see real machine physical addresses. p2m is done
> by the hypervisor. This is like x86 HVM guests.
> gmfn==mfn: Guest does see real machine physical addresses. Typically the
> guest will have its own concept of a flat pseudophysical address space that
> it maps to real machine addresses with its own p2m table. This is like x86
> pure PV guests.
>
> ARM7 VE does indeed support HVM for ARM, and gmfn==gpfn.
This is just to do with the functions in that file, right? A lot of
times in the Xen code "gmfn" refers to "an mfn (from Xen's
perspective) owned by the guest" -- as opposed to one owned by Xen.
e.g., in xen/arch/x86/mm/shadow/multi.c, you get lines like this:
gfn = guest_l1e_get_gfn(new_gl1e);
gmfn = get_gfn_query_unlocked(v->domain, gfn_x(gfn), &p2mt);
gfn in this case is "what the guest had in its page table", and gmfn
is "the mfn corresponding to that gfn".
-George
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-05-29 10:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-29 1:03 Distinguishing gpfn, gmfn, mfn, and pfn Sengul Thomas
2013-05-29 7:27 ` Keir Fraser
2013-05-29 10:09 ` George Dunlap
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.