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

Re: [Xen-devel] get_gfn_query() locking

On Oct 30, 2012, at 11:06 AM, Tim Deegan <tim@xxxxxxx> wrote:

> At 10:53 -0400 on 30 Oct (1351594401), Andres Lagar-Cavilla wrote:
>>>> And then again, with the p2m lock being recursive these
>>>> days, I don't think there's any harm calling the other methods
>>>> here with that lock held.
>> Is the patch you refer to 
>> http://www.gossamer-threads.com/lists/xen/devel/261025 and the hunk in 
>> question the following?
>> + get_gfn_query(d, pfn, &pt); 
>> + p2m_change_type(d, pfn, pt, p2m_ram_broken); 
>> + put_gfn(d, pfn); 
>> There really is no way to get rid of that p2m lock-protected critical
>> section if the domain allows for paging etc. You might want to
>> introduce a syntactically cleaner unconditional p2m_change_type
>> variant that doesn't cmpxchg with the previous type -- that is
>> effectively what goes on here. Should be a tiny amount of refactoring
>> and the code will be cleaner, no need for query or put.
> I don't think that change-type is even what's wanted here.  You want to
> use some more raw form of set_p2m_entry(), since keeping the MFN is not
> important.  How about:
> guest_physmap_add_entry(d, pfn, MFN_INVALID, p2m_ram_broken);
Has the side effect of leaking the current mfn (if any) in the p2m entry for 
the remainder of the lifetime of the domain.

Digression: is this something we want to just go ahead and fix? Or is that 
semantic intended?

> ?
>>> True, but it wouldn't be safe to call it with the paging lock held.
>>> OTOH since we're not seeing any crashes from the lock-ordering
>>> constraints maybe we don't do that.
>>> Andres, what do you think?  Can we just drop/amend that comment?
>> If you refer to removing the ordering constraints
> Noooooooooooooo! :)
> I think we should drop the comment that says it's OK to call
> get_gfn_query() with the paging lock held (and audit to check that we
> don't do that anywhere).

Good, same page then, phew

> Tim.

Xen-devel mailing list



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