On 07 Apr 2014, at 17:44, Mindaugas Rasiukevicius <rm...@netbsd.org> wrote:
> "J. Hannken-Illjes" <hann...@eis.cs.tu-bs.de> wrote: >> Currently all file systems have to implement their own cache of >> vnode / fs node pairs. Most file systems use a copy and pasted >> version of ufs_ihash. >> >> So add a global vnode cache with lookup and remove: >> >> <...> >> >> Diff implementing this for file systems sharing ufs_ihash and replacing >> VFS_VGET()/VOP_UNLOCK() sequences with vcache_lookup() is here: >> >> http://www.netbsd.org/~hannken/vnode-pass6-1.diff >> >> Comments or objections anyone? > > I like this step a lot! > > One concern though: can you benchmark ./build.sh on a machine with 8 or > more CPUs? I fear that vcache.lock might be a bit contended and we ought > to figure out how much. I don't have such a setup. Contention should be the same as before as ufs_ihash did exactly the same. > If the contention is not significant, it should > be fine for now. In the longer term, it should be moved to a different, > preferably lockless, data structure (something I am working on). For this, > the global vcache.cv should be replaced with either per-node cv or perhaps > just a kpause, so we would be prepared now rather than later. Let's change things when we need it. Not a big job as it is no longer copy'n'pasted code. -- J. Hannken-Illjes - hann...@eis.cs.tu-bs.de - TU Braunschweig (Germany)