|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/4] libxc/arm: allocate xenstore and console pages
On Fri, 13 Jul 2012, Ian Campbell wrote:
> On Fri, 2012-07-13 at 11:32 -0400, Stefano Stabellini wrote:
> > On Thu, 12 Jul 2012, Tim Deegan wrote:
> > > At 11:55 +0100 on 04 Jul (1341402949), Stefano Stabellini wrote:
> > > > static int alloc_magic_pages(struct xc_dom_image *dom)
> > > > {
> > > > + int rc, i, allocsz;
> > > > + xen_pfn_t store_pfn, console_pfn, p2m[NR_MAGIC_PAGES];
> > > > +
> > > > DOMPRINTF_CALLED(dom->xch);
> > > > - /* XXX
> > > > - * dom->p2m_guest
> > > > - * dom->start_info_pfn
> > > > - * dom->xenstore_pfn
> > > > - * dom->console_pfn
> > > > - */
> > > > +
> > > > + for (i = 0; i < NR_MAGIC_PAGES; i++)
> > > > + p2m[i] = dom->rambase_pfn + dom->total_pages + i;
> > > > +
> > > > + for ( i = rc = allocsz = 0;
> > > > + (i < NR_MAGIC_PAGES) && !rc;
> > > > + i += allocsz) {
> > > > + allocsz = NR_MAGIC_PAGES - i;
> > > > + rc = xc_domain_populate_physmap_exact(
> > > > + dom->xch, dom->guest_domid, allocsz,
> > > > + 0, 0, &p2m[i]);
> > > > + }
> > >
> > > What does this loop do? It seems like it can only ever execute once.
> >
> > I think that you are right.
> > In that case also the same loop in arch_setup_meminit in Ian's patch
> > should probably be removed:
> >
> > http://marc.info/?l=xen-devel&m=134089793916569
>
> In that loop it can make only partial progress in an iteration (due to
> the "if (alloc_size > 1024*1024)" clamping the allocation size. In that
> case we will need to go round the loop multiple times.
>
> In your case you always allocate exactly enough (NR_MAGIC_PAGES - i) the
> first time round the loop. Since NR_MAGIC_PAGES is small you don't need
> to do the allocations in chunks.
I see, OK then.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |