![]() | |||||||||||||
Messages in this thread |
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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2006-04-28 07:36 [from the cache] ©2003-2008 | |||||||||||||