Re: [Xen-devel] [PATCH] xen-mapcache: don''t unmap locked entry during mapcache invalidation

Tim Deegan
2012-03-15T17:37:07Z

At 10:32 -0700 on 15 Mar (1331807562), Andres Lagar-Cavilla
wrote:
> > At 17:14 +0000 on 15 Mar (1331831693), Stefano Stabellini wrote:
> >> On Thu, 15 Mar 2012, Julien Grall wrote:
> >> > When an IOREQ_TYPE_INVALIDATE is sent to QEMU, it invalidates
all
> >> entry
> >> > of the map cache even if it''s locked.
> >> >
> >> > QEMU is not able to know that entry was invalidated, so when
an IO
> >> > access is requested a segfault occured.
> >>
> >> The problem here is the long term mappings in QEMU that cannot
easily be
> >> re-created.
> >> I am not sure whether this can cause any trouble to things like
> >> xenpaging.
> >
> > It causes some trouble to ballooning - a guest might try to return
memory
> > to Xen only to find that Qemu won''t let go of it.
>
> That''s the right causation (as opposed to invalidate cache being
called
> after balloon).
>
> All that will happen is that the balloon request will be (partially)
> failed. Up to the guest balloon driver to deal with it gracefully (and to
> not choose weird pages to balloon away in the first place!).

No - the balloon call will succeed, and the page will be removed from
the p2m and its ref dropped.  But the guest''s memory usage
won''t drop
until qemu lets go of its mapping.

If qemu is liable to do this to a lot of memory, that''s definitely a
problem.  But I suspect that in fact it won''t do that.

Tim.