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

[Xen-devel] Comment & code inconsistency?


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "陈诚" <concretechen@xxxxxxxxx>
  • Date: Sun, 18 Nov 2007 22:20:15 +0800
  • Delivery-date: Sun, 18 Nov 2007 06:20:56 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=HWKAa6qNhiLqqZ5EgpRrS3+0SKrnfSFycZQckRVLTalOshXts3kMDM/DKiLoKAIeU/egUmjBOQgvEFGHQ23ZKdTdQZs/PuQ+yENIWnnNmnc7/dlk/OuEugLT1y0VVpKNvb069cWqKJ3Jr7OdvksDzQ2cs4/UH/FOIqwlyK27fXY=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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


 


Rackspace

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