|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Question about quest page table update
Hi,
Recently I am trying to understand the page table update of a guest OS
and I am in some trouble.
Assuming the starting point is the hypercall do_mmu_update(req, count,
done, ...),
req has the struct of {uint64_t ptr; uint64_t val}.
My first question is that. Since the ptr points to the address of the
page table entry to be updated, it is the guest address. Why
the code "gmfn = req.ptr >> PAGE_SHIFT;" can be used to the guest
machine frame number?
Second, what is va from these 3 line of code?
mfn = mfn_x(gfn_to_mfn(pt_owner, gmfn, &p2mt));
va = map_domain_page_with_cache(mfn, &mapcache);
va = (void *)((unsigned long)va +
(unsigned long)(req.ptr & ~PAGE_MASK));
Third, is the input argument val a real machine address or the
pseudo-physical address of the guest?
Fourth, I saw a lot of code in xen/arch/x86/mm.c calls the functions
like p2m. What is the relationship between the p2m functions and the
shadow page tables?
Sorry for posting so many questions. Could anyone help to clarifying
them? Thanks.
- Hui
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Question about quest page table update,
Steven <=
|
|
|
|
|