Re: [PATCH] anon_vmas: Convert the rwsem to an rwlock_t

From: Linus Torvalds
Date: Sat Sep 28 2013 - 15:43:58 EST


On Sat, Sep 28, 2013 at 12:37 PM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> - down_write_nest_lock(&anon_vma->root->rwsem, &mm->mmap_sem);
> + down_write_nest_lock(&anon_vma->root->rwlock, &mm->mmap_sem);

That's just completely bogus, and cannot work.

Maybe just a "write_lock(&anon_vma->root->rwlock)" (which is just
anon_vma_unlock_write(anon_vma)). But I think we might have a lockdep
issue. I'm not quite sure what's up with the nesting there.

> - if (rwsem_is_locked(&anon_vma->root->rwsem)) {
> + if (write_can_lock(&anon_vma->root->rwlock)) {
> anon_vma_lock_write(anon_vma);
> anon_vma_unlock_write(anon_vma);
> }

That's the wrong way around. It should be

if (!write_can_lock(&anon_vma->root->rwlock)) {

so some more testing definitely needed.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/