At 21:57 +0800 on 18 Jul (1311026244), YAO wrote:
> First, I used "xm debug-key D" to dump ept mappings. But I have a doubt
> about the mapping.
> I started a 32bit HVM which memory is 512, so the max gfn should be 0x1ffff.
> But the result of "xm dmesg" showed gfn->mfn mapping until 0xfffff.
> Output looked like below:
> (XEN) gfn: fc012 mfn: 179e6
> (XEN) gfn: fc013 mfn: 179e5
> (XEN) gfn: fee00 mfn: 2e8
> (XEN) gfn: feffb mfn: 178fd
> (XEN) gfn: feffc mfn: 178fc
> (XEN) gfn: feffd mfn: 178fb
> (XEN) gfn: feffe mfn: 178fa
> (XEN) gfn: fefff mfn: 178f9
> (XEN) gfn: fffff mfn: 2eb
> What I think is every HVM has one EPT table and the table maps the allocated
> memory like from 0 to 0x1ffff, why does the HVM ept map all the 4G space?
> Isn't it unneccessary and waste of memory?
Guest PFN-space is not contiguous. Like a real PC, there are some
areas of the address space just below 4GB that are used for special
things like MMIO. So you should see RAM up to about 512MiB, then a big
gap, and then the entries above.
> Second, I want to copy the system ept and used the copy for later
> translation. Since the HVM is 512M, so I need one PML4 pointed by eptp, one
> PDP pointed by PML4 entry, one PD pointed by PDP entry, 512 PT's
> pointed by all PD entries. After all settings are done, I'v got gfn->mfn
> mapping of 1G memory. I think it should be working, but not. Where am I
> wrong? What would I pay attention to?
As you noticed there are some entries that are not in the bottom
512MiB; you'll need to handle those as well.
Other than that it's hard to tell from your description. What are you
trying to achieve by copying the p2m?
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd. (Company #02937203, SL9 0BG)
Xen-devel mailing list