|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 0 of 6] [RFC] Use wait queues for paging, v2
> At 16:37 +0100 on 15 Mar (1331829432), Olaf Hering wrote:
>> On Thu, Mar 15, Tim Deegan wrote:
>>
>> > At 20:56 +0100 on 29 Feb (1330548983), Olaf Hering wrote:
>> > > On Wed, Feb 29, Olaf Hering wrote:
>> > >
>> > > > This is the domain_lock() in xenmem_add_to_physmap_once().
>> > > >
>> > > > Is get_gfn_untyped() correct, or would get_gfn_query() work as
>> well in
>> > > > this context?
>> >
>> > get_gfn_untyped() is correct. I'm not sure that we really need to
>> take
>> > the domain lock while we're doing it, though. It might be that the
>> new
>> > gfn locks will be enough to serialize these updates.
>> >
>> > > Another case is emulate_privileged_op(), in "Write CR3" case
>> > > get_gfn_untyped() is called with domain_lock().
>> >
>> > I think that should be OK as it only happens for PV guests.
>>
>> I think its just me not knowing these things, but would it make sense to
>> add comments to XX_lock users describing what they protect (or used to
>> protect since comments can stale over time)?
>
> Yes! I'm trying to get this sorted out for all the MM locks, as well as
> the discipline of which order to take them in. But the domain lock
> (a.k.a the Big Lock) is an ancient and venerable lock, now poorly
> understood, at least by me. :) The add_to_physmap path started taking
> this lock in cset 9187:fbeb0a5b7219, in 2006.
We've come a long way in terms of discipline for the mm. But there is
still the odd interaction -- see recent posts about deadlock between p2m
and event channel lock.
And the big domain lock is surely a big rug thrown over a lot of painful
dirt ("metaphors, not Andres's forte")
Even more venerable and hideous is the domctl lock. It's actually somewhat
surprising the switch to memops for paging/sharing worked rather
seamlessly.
Andres
>
> Tim.
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |