|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] memory manager in Mini-os - are initial page tables still pl
Hello,
I am still working on mini-os :).
I think that the memory manager (file mm.c) for mini-os is pretty
outdated. I just want to confirm something. In the function init_mm()
in file mm.c, it is assumed that XEN places the initial page tables at
the TOP of the available memory. Mini-os uses that information to
calculate the number of free page frames available to use. Is that
still the case nowadays ?
Below is part of the function init_mm() and the comments inside init_mm()
=========================================================================
unsigned long *pgd = (unsigned long *)start_info.pt_base;
/* set up minimal memory infos */
start_pfn = PFN_UP(to_phys(&_end));
max_pfn = start_info.nr_pages;
printk(" start_pfn: %lx\n", start_pfn);
printk(" max_pfn: %lx\n", max_pfn);
/*
* we know where free tables start (start_pfn) and how many we
* have (max_pfn).
*
* Currently the hypervisor stores page tables it providesin the
* high region of the this memory range.
*
* next we work out how far down this goes (max_free_pfn)
*
* XXX this assumes the hypervisor provided page tables to be in
* the upper region of our initial memory. I don't know if this
* is always true.
*/
max_free_pfn = PFN_DOWN(to_phys(pgd));
{
unsigned long *pgd = (unsigned long *)start_info.pt_base;
unsigned long pte;
int i;
printk(" pgd(pa(pgd)): %lx(%lx)", (u_long)pgd, to_phys(pgd));
for ( i = 0; i < (HYPERVISOR_VIRT_START>>22); i++ )
{
unsigned long pgde = *pgd++;
if ( !(pgde & 1) ) continue;
pte = machine_to_phys(pgde & PAGE_MASK);
printk(" PT(%x): %lx(%lx)", i, (u_long)to_virt(pte), pte);
if (PFN_DOWN(pte) <= max_free_pfn)
max_free_pfn = PFN_DOWN(pte);
}
}
max_free_pfn--;
printk(" max_free_pfn: %lx\n", max_free_pfn);
=========================================================================
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] memory manager in Mini-os - are initial page tables still placed at the top of memory ???,
Richard <=
|
|
|
|
|