git: kernel - Recode the namecache mount transition cache
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Feb 14 16:12:13 PST 2020
commit c41a7495e09ab290ff03dee5ee1194a6f3971c46
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri Feb 14 16:04:14 2020 -0800
kernel - Recode the namecache mount transition cache
* DragonFlyBSD uses (mp, ncp/vp) tuples to track mount recursions,
which allows nullfs to not have to create shadow vnodes. However,
this means that mount points cannot be stored in the vnode structure.
Instead, DFly relies on a (mp, ncp) -> targetmp translation cache
to avoid having to scan the mountlist.
* Increase the size of this cache and convert it from a straight
single-entry prime-number mod hash to a 4-way set-associative
power-of-2 hash, and improve the hash algorithm.
* This SIGNIFICANTLY reduces lock stalls during heavliy concurrent
filesystem operations (aka bulk builds) when in the presence of
a large number of mounts (again bulk builds with [d]synth).
Summary of changes:
sys/kern/vfs_cache.c | 116 +++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 94 insertions(+), 22 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c41a7495e09ab290ff03dee5ee1194a6f3971c46
--
DragonFly BSD source repository
More information about the Commits
mailing list