Hi, I was debugging a problem and got confused into gmfn, gpfn, mfn. There are 4 addresses when running a VM on arm (a) Guest Virtual (b) Guest Physical (c) IPA (d) Real Physical. MFN is AFAIK is (d). Not able to map gmfn and gpn to (a)(b)(c). Can someone please explain -- Regards -mj
On Fri, 2013-10-04 at 18:16 +0530, Mj Embd wrote:> Hi, > > I was debugging a problem and got confused into gmfn, gpfn, mfn. > > There are 4 addresses when running a VM on arm > (a) Guest Virtual > (b) Guest Physical > (c) IPA > (d) Real Physical. > > MFN is AFAIK is (d). Not able to map gmfn and gpn to (a)(b)(c).I think you mean s/gpn/gfn/? AIUI gmfn and gfn are used interchangeably to refer to what the guest thinks of as real-physical, on ARM which always uses hardware second stage paging that would always be IPA. On x86 PV gmfn/gpn would be actually real physical, while for an HVM guest with hardware paging it would be the x86 equivalent of IPA (whatever that is called). That said, not all code is consistent about this sort of thing so YMMV. Ian.
At 18:16 +0530 on 04 Oct (1380910571), Mj Embd wrote:> Hi, > > I was debugging a problem and got confused into gmfn, gpfn, mfn. > > There are 4 addresses when running a VM on arm > (a) Guest Virtual > (b) Guest Physical > (c) IPA > (d) Real Physical. > > MFN is AFAIK is (d). Not able to map gmfn and gpn to (a)(b)(c).On ARM, MFN is (d); GFN is (c) (== (b) too, I think). GMFN and GPFN are older terms that aren''t consistently used, and we really ought to get rid of them. Please don''t use them in new code. On ARM they''ll also mean (c). Tim.