WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] gntdev: switch back to rwlocks

>>> On 09.07.10 at 16:55, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> 
>>> wrote:
> On Fri, 9 Jul 2010, Jan Beulich wrote:
>> >>> On 09.07.10 at 16:32, Stefano Stabellini 
>> >>> <stefano.stabellini@xxxxxxxxxxxxx> wrote:
>> > Hi Jeremy,
>> > this patch switches back from spinlocks to rwlocks in gntdev, solving
>> > the locking issue that was preventing stubdoms from working.
>> > In particular the problem is that gntdev_mmap calls apply_to_page_range
>> > after acquiring the spinlock. apply_to_page_range causes the mmu
>> > notifiers to be called, so mn_invl_range_start will be called that will
>> > try to acquire again the same spinlock.
>> 
>> Shouldn't this be solved in a way not depending on an implementation
>> detail (rw-locks being unfair in that readers can lock out writers
>> indefinitely)? Is it even certain that all arch-es implement rw-locks
>> in a manner compatible with this?
> 
> any rwlock implementations that allow multiple readers will do: both
> mn_invl_range_start and gntdev_mmap only require a read lock.

No - if an implementation forces further readers to spin once a
writer started its attempt to acquire a lock, the code after your
change still has the potential to deadlock afaict.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel