On 5/19/2009 10:17:58 PM, leilei175@gmail.com wrote:> in the mm_pin routine,
> the function would do
>
> mm_walk(mm, PAGE_KERNEL_RO);
> xen_pgd_pin(__pa(mm->pgd)); /* kernel */
> xen_pgd_pin(__pa(__user_pgd(mm->pgd))); /* user */
> mm->context.pinned = 1;
>
> then I saw the macro __user_pgd is defined as
>
> #define __user_pgd(pgd) ((pgd) + PTRS_PER_PGD)
>
> my question is:
> what''s the use of __user_pgd?
Since 64-bit Xen PV Linux runs in ring3, we use a pair of pgds to isolate the
kernel address space. Please look at
http://www.kernel.org/doc/ols/2006/ols2006v2-pages-181-192.pdf for the details,
for example.
> moreover, concerning the action of "pin" the page directory
table,
> what is the use of it?
>
> could some one shed some light on these questions? Any explanation is
> appreciated.
>
.
Jun Nakajima | Intel Open Source Technology Center
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel