I think what may have gotten lost in Alexander's detailed reply is the big
picture on the BKL in VFS. The issue of the BLK protecting ->lookup is
the same as for every other VFS call:
A whole bunch of filesystem drivers were designed in a time when there
could be only one CPU, and coupled with a non-preemptive kernel, that
meant these filesystem drivers could depend on uninterrupted access to
data structures and filesystems. When the multiple CPU case was
introduced, it was not practical to update every filesystem driver, so the
Big Kernel Lock (BKL) was added to give those drivers the uninterrupted
access they (may) expect. You may surmise that a "lookup" routine doesn't
need such uninterrupted access, but you can never really assume that.
I think an individual filesystem driver that is specifically designed to
do the fine-grained locking necessary to tolerate multiple CPUs can just
release the BKL and avoid any bottleneck.
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]