On 04/21, Linus Torvalds wrote: > > On Tue, 21 Apr 2009, Oleg Nesterov wrote: > > > > > (You do rcu_read_unlock() earlier, but that's okay.) > > > > Yes, but unless we have a "strong" reason, it is better to take > > fs->lock first. rcu_read_lock() is free, but disables preemption. > > .. but so does taking a spinlock. So it shouldn't matter. > > We could play games with that (the same way I think we have some games for > large-system irq latency with '__raw_spin_lock_flags()' on ia64), but that > makes sense only when you have lots of CPU's and expect irq latency to > suffer. > > And it doesn't tend to make sense for preemption latency, because if you > have so many CPU's that you have lots of spinning on locks, you would > normally not really care deeply about preemption (sure, in theory it's a > real-time thing, in practice I doubt you'll find anybody who cares). OK, I agree, it doesn't really matter from latency/etc pov. But still I can't understand why it is better to take fs->lock under RCU lock. I mean, "fs->lock is the innermost lock" should not apply to rcu_read_lock(). Because the latter is a bit special, no? Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html