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
On 07 Apr 2014, at 17:44, Mindaugas Rasiukevicius <rmind%netbsd.org@localhost>
wrote:
> "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.
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 - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig
(Germany)
Home |
Main Index |
Thread Index |
Old Index