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

Re: [Xen-devel] understanding __linear_l2_table and friends



They aren't actually used during domain building, but anyway: Xen uses
the common trick whereby each page directory maps itself. This means
that every page-table entry is mapped into the address space at some
virtual address. In fact, page directory entries (and PML3 and PML4
entries on x86/64) are also directly accessible in the virtual address
space. The macros below are expressions that evaluate to the correct
virtual addresses.

 -- Keir

> I was trying to understand the states behind domain creation, but i'm
> having troubles getting past this. Would someone mind saying a few
> words about what these are and (if still needed) why these calculations
> work for that?
> 
> xen/include/asm-x86/page.h:
>    #define linear_l1_table                                                 \
>        ((l1_pgentry_t *)(LINEAR_PT_VIRT_START))
>    #define __linear_l2_table                                                 \
>        ((l2_pgentry_t *)(LINEAR_PT_VIRT_START +                            \
>                         (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<0))))
>    #define __linear_l3_table                                                 \
>        ((l3_pgentry_t *)(LINEAR_PT_VIRT_START +                            \
>                         (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<0)) +   \
>                         (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<1))))
>    #define __linear_l4_table                                                 \
>        ((l4_pgentry_t *)(LINEAR_PT_VIRT_START +                            \
>                         (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<0)) +   \
>                         (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<1)) +   \
>                         (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<2))))
>    
> Thanks!
> sRp
> 
> -- 
> Scott Parish
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 


_______________________________________________
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®.