|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Comment & code inconsistency?
Hi all,
in arch_init_memory() we have the following code:
...
/* Any areas not specified as RAM by the e820 map are considered I/O. */
for ( i = 0, pfn = 0; pfn < max_page; i++ )
{
while ( (i < e820.nr_map) && (e820.map[i].type != E820_RAM) )
i++;
if ( i >= e820.nr_map )
{
/* No more RAM regions: mark as I/O right to end of memory map. */
rstart_pfn = rend_pfn = max_page;
}
else
{
/* Mark as I/O just up as far as next RAM region. */
rstart_pfn = min_t(unsigned long, max_page,
PFN_UP(e820.map[i].addr));
rend_pfn = max_t(unsigned long, rstart_pfn,
PFN_DOWN(e820.map[i].addr + e820.map[i].size));
}
/* Mark as I/O up to next RAM region. */
for ( ; pfn < rstart_pfn; pfn++ )
{
BUG_ON(!mfn_valid(pfn));
share_xen_page_with_guest(
mfn_to_page(pfn), dom_io, XENSHARE_writable);
}
/* Skip the RAM region. */
pfn = rend_pfn;
}
...
it seems that the while loop skips all the areas that are not
specified as RAM and the areas which are specified as RAM are
considered I/O, which contradicts with the comment, or do I
misunderstand this piece of code?
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Comment & code inconsistency?,
陈诚 <=
|
|
|
|
|