Re: Lockless page cache test results

Linus Torvalds
2006-04-28T05:34:12Z

On Fri, 28 Apr 2006, Nick Piggin wrote:
> >
> > See __d_lookup() for details.
>
> Yes I see. Perhaps a seqlock could do the trick (hmm, there already is one),
> however we still have to increment the refcount, so there'll always be a
> shared cacheline.

Actually, the thing I'd really _like_ to see is not even incrementing the
refcount for intermediate directories (and those are actually the most
common case).

It should be possible in theory to do a lookup of a long path all using
the rcu_read_lock, and only do the refcount increment (and then you might
as well do the d_lock thing) for the final component of the path.

Of course, it's not possible right now. We do each component separately,
and we very much depend on the d_lock. For some things, we _have_ to do it
that way (revalidation etc), so the "possible in theory" isn't always even
true.

And every time I look at it, I decide that it's too damn complex, and the
end result would look horrible, and that I'd probably get it wrong anyway.

Still, I've _looked_ at it several times.

Linus