|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] xen/arm: Allow balooning working with 1:1 memory mapping
On Mon, 16 Dec 2013, Jan Beulich wrote:
> >>> On 13.12.13 at 21:18, Julien Grall <julien.grall@xxxxxxxxxx> wrote:
> > --- a/xen/common/memory.c
> > +++ b/xen/common/memory.c
> > @@ -90,7 +90,7 @@ static void increase_reservation(struct memop_args *a)
> >
> > static void populate_physmap(struct memop_args *a)
> > {
> > - struct page_info *page;
> > + struct page_info *page = NULL;
>
> Why?
>
> > @@ -122,7 +122,29 @@ static void populate_physmap(struct memop_args *a)
> > }
> > else
> > {
> > - page = alloc_domheap_pages(d, a->extent_order, a->memflags);
> > + if ( d == dom0 && is_dom0_mapped_11() )
> > + {
> > + mfn = gpfn;
> > + if (!mfn_valid(mfn))
>
> Coding style.
>
> > + {
> > + gdprintk(XENLOG_INFO, "Invalid mfn 0x%"PRI_xen_pfn"\n",
> > + mfn);
> > + goto out;
> > + }
> > +
> > + page = mfn_to_page(mfn);
> > + if ( !get_page(page, d) )
> > + {
> > + gdprintk(XENLOG_INFO,
> > + "mfn 0x%"PRI_xen_pfn" doesn't belong to
> > dom0\n",
> > + mfn);
> > + goto out;
> > + }
> > + put_page(page);
> > + }
>
> I think this hack doesn't belong into a common file. Rather than
> having the (anyway oddly named) is_dom0_mapped_11(), it
> would seem more clean to have this implemented by an inline
> function for ARM, returning the struct page_info * (and getting
> #define-d to NULL for all other cases, perhaps not even in an
> x86 header, but right in the source file).
Considering that having a 1:1 mapping for dom0 is conceivable even on
x86 (if you want PVH dom0 but your platform doesn't come with an IOMMU),
I would prefer the approach taken here. However I find your alternative
suggestion acceptable too.
> And even if we were to stay with the implementation here, for
> being at least half way sane the checking macro should take a
> domain argument rather than requiring the extra "d == dom0"
> check up front. Plus the "11" there is bogus - I first read this as
> "eleven" rather than "1:1", wondering what eleven here was
> about. I'd suggest something like is_domain_direct_mapped() or
> is_domain_identity_mapped().
I agree.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |