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

RE: [Xen-devel] xen_phys_start for 32b

-----Original Message-----
> From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
> Sent: Tuesday, January 06, 2009 12:43 AM
> On 06/01/2009 06:36, "Cihula, Joseph" <joseph.cihula@xxxxxxxxx> wrote:
> > On 64b builds of Xen, xen_phys_start holds the starting (physical) address 
> > of
> > the hypervisor.  However, on 32b systems it is 0.  While I realize that 32b
> > Xen does not relocate the hypervisor, why not set this variable to the start
> > of the code (__pa(&_start)) so that it will represent the same thing on all
> > builds?
> For both i386 and x86/64:
>  __pa(&_start) == xen_phys_start + 1ul<<20
> xen_phys_start marks the start of the Xen heap, which Xen text and data is
> embedded within.
>  -- Keir

I'm confused by how the code in setup.c sets xenheap_phys_start.  It is 
initially set by:
    xenheap_phys_start = init_boot_allocator(__pa(&_end));
This value gets used by:
    /* Initialise the Xen heap, skipping RAM holes. */
    init_xenheap_pages(xenheap_phys_start, xenheap_phys_end);
    nr_pages = (xenheap_phys_end - xenheap_phys_start) >> PAGE_SHIFT;
But then a few lines later, it is re-set:
    xenheap_phys_start = xen_phys_start;

I don't understand the reason for this last assignment on 32b systems, since 
xen isn't really using this low memory for its heap.


Xen-devel mailing list



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