|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Page table and memory management
Hello,
I am having some problems to update the page table entries of my
domain with the hypervisor call do_mmu_update().
With 2 level paging XEN refers to the page global directory (PGD) as
level2 and page tables (PT) as level1. I am taking a page frame that
my domain owns, I am going to use that page frame as a page table
(level1 PT) and I am adding the 'address' of that page frame as an
entry of my page global directory (level2 PGD). So my request
'mmu_update_t' to the hypercall do_mmu_update() looks like this.
mmu_update_t.ptr = machine address of PGD entry that I want to update
mmu_update_t.val = machine frame number of PT with appropriate flags
do_mmu_update() and its helper functions in xen/arch/x86/memory.c do
many checks. One of the checks is to verify the flags in '(struct
pfn_info).u.inuse.type_info'. The upper bits of 'type_info' contain
the type of the page frame: PGT_none, PGT_l1_page_table,
PGT_l2_page_table etc ...
In my case, do_mmu_update() verifies that the page frame that I am
going to use as a page table is actually of type PGT_l1_page_table.
Therefore, I cannot just take any random page frame that my domain
owns and use it as page table.
How do I create a new page table ?
How do I register a page frame that I own with XEN so that I can use
it as a page table ?
I am trying to see how XenoLinux is doing its page table allocation.
>From what I can see, function pte_alloc_map() in mm/memory.c is not
doing anything special. It is just getting a free page frame and using
the function pmd_populate() to use that page frame as a page table.
Function pmd_populate() uses macro set_pmd() that expands to function
xen_l2_entry_update() to update the (PGD) level2 page tables.
Thanks
Richard
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Page table and memory management,
Richard <=
|
|
|
|
|