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)

Reply via email to