|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v6 08/10] xen/arm: Add relinquish_p2m_mapping to remove reference on every mapped page
On Wed, 2013-12-18 at 14:06 +0000, Julien Grall wrote:
>
> On 12/18/2013 01:21 PM, Ian Campbell wrote:
> > (the cc line here is a bit odd, why Ian J? But not Tim or Stefano? I've
> > added those two) On Tue, 2013-12-17 at 17:02 +0000, Ian Campbell wrote:
> >>> For the last item, I think it's a bit stupid to create table if we are
> >>> removing/relinquish mapping. But I think it's an improvement for later.
> >>> There are lots of improvement to do in this function (eg: flushing).
> >>
> >> Agreed.
> >
> > Actually, there is an efficiency concern here.
> >
> > If we were to skip non-present first and second levels then we would
> > skip vast swathes of the address space very quickly. As it stands we
> > actively spend time filling it in just so we can recurse over it.
> >
> > This effectively turns this back into a loop over the entire gfn space,
> > which is what we wanted to avoid.
> >
> > The use of next_gfn_to_relinquish..max_mapped_gfn mitigates this
> > somewhat, but max_mapped_gfn is guest controlled and can trivially be
> > made huge by the guest.
> >
> > How hard would it be to skip missing entries for remove and relinquish
> > walks? Should just be roughtly:
> >
> > int populate = (op == INSERT || op == ALLOCATE)
> >
> > for ( addr = ... ; addr < ... ; addr ... )
> > {
> > [...]
> >
> > if ( !first[...].valid )
> > {
> > if ( !populate ) {
> > addr += skip size of a first supermapping,
> > continue;
> > }
> > rc = p2m_create(...)
> > [..error..]
> >
> > [same for second etc]
> > }
> > }
> >
> > "size of a first" needs care vs the += PAGE_SIZE in the for loop, I'd be
> > inclined to turn this into a while loop and move the += PAGE_SIZE to the
> > end.
> >
> > Ian.
> >
>
> Ian, is it fine for you if I send a patch on top of this patch series?
> So we can go ahead with the current series.
Yeah, lets do that.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |