On Fri, Sep 6, 2013 at 5:19 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > (We're bounded in practice by PATH_MAX, so you can't make getcwd() > traverse more than about 2000 parents (single character filename plus > the slash for each level), and for all I know filesystems might cap it > before that, so it's not unbounded, but the difference between "1" and > "2000" is pretty damn big) .. in particular, it's big enough that one is pretty much guaranteed to fit in any reasonable L1 cache (if we have dentry hash chains so long that that becomes a problem for traversing a single chain, we're screwed anyway), while the other can most likely be a case of "not a single L1 cache hit because by the time you fail and go back to the start, you've flushed the L1 cache". Now, whether 2000 L2 cache misses is long enough to give people a chance to run the whole rename system call path in a loop a few times, I don't know, but it sure as heck sounds likely. Of course, you might still ask "why should we even care?" At least without preemption, you might be able to trigger some really excessive latencies and possibly a watchdog screaming at you as a result. But that said, maybe we wouldn't care. I just think that the solution is so simple (what, five extra lines or so) that it's worth avoiding even the worry. Linus -- 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