  The lookup procedure in Linux costs a significant portion of file accessing
time as the virtual file system (VFS) traverses the file path components one
after another. The lookup procedure becomes more time consuming when
applications frequently access files, especially those with small sizes. We
propose Stage Lookup, which dynamically caches popular directories to speed up
lookup procedures and further reduce file accessing latency. The core of Stage
Lookup is to cache popular dentries as shortcuts, so that path walks do not
bother to traverse directory trees from the root. Furthermore, Stage Lookup
enriches backward path walks as it treats the directory tree in a VFS as an
undirected map. We implement a Stage Lookup prototype and integrate it into
Linux Kernel v3.14. Our extensive performance evaluation studies show that
Stage Lookup offers up to 46.9% performance gain compared to ordinary path
lookup schemes. Furthermore, Stage Lookup shows smaller performance overheads
in rename and chmod operations compared to the original method of the kernel.
