tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Vnode API change: add global vnode cache



"J. Hannken-Illjes" <hannken%eis.cs.tu-bs.de@localhost> 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.  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.

-- 
Mindaugas


Home | Main Index | Thread Index | Old Index