[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC] [PATCH] x86/mm: use wait queues for mem_paging

At 07:55 -0800 on 23 Feb (1329983736), Andres Lagar-Cavilla wrote:
> > I have hit another stumbling block though - get_two_gfns() can't be
> > safely ask get_gfn to populate or unshare if that might involve a waitq,
> > since by definition one of its two calls is made with a lock held.  I
> > can't see a nice way of having it retry (not one that's guaranteed to
> > make progress) without pulling the fixup-and-retry up into that
> > function.  I might do that in the next revision.
> One way to do this is use query_unlocked on the second. If we sense
> danger, drop the lock on the first, then do the right thing for the
> second, then drop the lock for the second, then retry at the top.

Sadly, this isn't guaranteed to make progress in the face of an
aggressive pager or sharer.  It might be OK with yet another waitq
invocation, though...

> hvm_task_switch also gets two gfns, although in a manner that prevents
> easily using get_two_gfns (hvm_map_entry on gdt offsets). It's unlikely
> this will ever be a problem (it's somewhat reasonable to expect both gdt
> entries to fall in the same gfn) but it's something worth keeping in mind.

Thanks, I'll add it to the list.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.