|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 7/8] x86/mm: handle foreign mappings in p2m_entry_modify
On Thu, Feb 07, 2019 at 06:05:24PM +0000, George Dunlap wrote:
> On 2/7/19 5:57 PM, Roger Pau Monné wrote:
> > On Thu, Feb 07, 2019 at 05:49:16PM +0000, George Dunlap wrote:
> >> On 1/30/19 10:36 AM, Roger Pau Monne wrote:
> >>> diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h
> >>> index 834d49d2d4..1cc8acb3fe 100644
> >>> --- a/xen/include/asm-x86/p2m.h
> >>> +++ b/xen/include/asm-x86/p2m.h
> >>> @@ -933,9 +933,12 @@ struct hvm_ioreq_server *p2m_get_ioreq_server(struct
> >>> domain *d,
> >>> unsigned int *flags);
> >>>
> >>> static inline void p2m_entry_modify(struct p2m_domain *p2m, p2m_type_t
> >>> nt,
> >>> - p2m_type_t ot, unsigned int level)
> >>> + p2m_type_t ot, mfn_t nfn, mfn_t ofn,
> >>> + unsigned int level)
> >>> {
> >>> - if ( level != 1 || nt == ot )
> >>> + struct page_info *pg;
> >>> +
> >>> + if ( level != 1 || (nt == ot && mfn_eq(nfn, ofn)) )
> >>> return;
> >>
> >> Are you sure that foreign mappings (or ioreq server pages, for that
> >> matter) can never be level > 1?
> >
> > Not given the current Xen interface, see
> > XENMEM_add_to_physmap{_batch}. This will have to change if the
> > interface is expanded to allow 2M or 1G mappings.
>
> Right; but the question really meant to say: If such an interface
> expansion happened, are you sure the person who did it would remember to
> handle larger pages down here?
I've added:
BUG_ON(level > 1 && (nt == p2m_ioreq_server || nt == p2m_map_foreign));
At the top of the function. This will catch any attempt to add any of
such mappings with an order different than 4K.
Thanks, Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |