Lately I've been researching the implementation of the shadow page and I didn't really understand the mechanism. For instance, the function shadow_get_and_create_l*e in x86/mm/shadow/multi.c
If the GuestOS is 32-bit, then shadow_get_and_create_l1e should execute
*sl2mfn = pagetable_get_mfn(v->arch.shadow_table);
(void) shadow_l2_index(sl2mfn, guest_l2_table_offset(gw->va));
return sh_linear_l2_table(v) + shadow_l2_linear_offset(gw->va);
1.How does the Xen organize the spt? it looks like xen used 36-bit pae for spt, but how does it correspond to the guest 2 level page table?
2.What's the function of sh_linear_l2_table & the whole return sentence? It's the same situation in the shadow_get_and_cr
eate_l2e. There are some assemble code and it screw me up :(
3.Are there any docs to help me to figure it out?
Xen-devel mailing list