[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] one question on __user_pgd



On 5/19/2009 10:17:58 PM, leilei175@xxxxxxxxx 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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.