Re: [PATCH 5/6] IMA: use rbtree instead of radix tree for inodeinformation cache

From: Trond Myklebust
Date: Wed Oct 20 2010 - 18:48:22 EST


On Wed, 2010-10-20 at 15:22 -0700, Linus Torvalds wrote:
> On Wed, Oct 20, 2010 at 3:05 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> >
> > /me wanders off to look at converting the xfs buffer cache rbtrees
> > to RCU....
>
> Look out for livelocks, though. And yes, they can happen.
>
> So rather than a loop, one option is to do basically
>
> rcu_read_lock();
> seq = read_seqbegin();
>
> .. do lookup ..
>
> need_lock = read_seqretry(seq);
> rcu_read_unlock();
>
> if (need_lock) {
> get_real_lock();
>
> .. do lookup ..
>
> drop_real_lock();
> }
>
> which just falls back to a locked access if the rcu model doesn't work.
>
> Linus

That is a really interesting alternative to traditional locking. Could
we perhaps document it in Documentation/rbtree.txt?

Cheers
Trond

--
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/