freebsd-nq/sys/fs
Mateusz Guzik 1e2f0ceb2f vfs: add VOP_NEED_INACTIVE
vnode usecount drops to 0 all the time (e.g. for directories during path lookup).
When that happens the kernel would always lock the exclusive lock for the vnode
in order to call vinactive(). This blocks other threads who want to use the vnode
for looukp.

vinactive is very rarely needed and can be tested for without the vnode lock held.

This patch gives filesytems an opportunity to do it, sample total wait time for
tmpfs over 500 minutes of poudriere -j 104:

before: 557563641706 (lockmgr:tmpfs)
after:   46309603301 (lockmgr:tmpfs)

Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D21371
2019-08-28 20:34:24 +00:00
..
autofs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cd9660 Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cuse Free all allocated unit IDs in cuse(3) after the client character 2019-06-25 11:46:01 +00:00
deadfs Switch to use shared vnode locks for text files during image activation. 2019-05-05 11:20:43 +00:00
devfs Avoid relying on header pollution from sys/refcount.h. 2019-07-29 20:26:01 +00:00
ext2fs Avoid relying on header pollution from sys/refcount.h. 2019-07-29 20:26:01 +00:00
fdescfs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
fifofs fcntl: fix overflow when setting F_READAHEAD 2019-06-20 23:07:20 +00:00
fuse fusefs: Fix some bugs regarding the size of the LISTXATTR list 2019-08-28 04:19:37 +00:00
msdosfs msdosfs_fat: reduce diffs with NetBSD and makefs 2019-08-22 16:06:52 +00:00
nfs Add #ifdef INET as requested by bz@. 2019-04-21 22:53:51 +00:00
nfsclient Get rid of extraneous initialization. 2019-05-31 03:13:09 +00:00
nfsserver Add support for the ModeSetMasked attribute to the NFSv4.1 server. 2019-04-19 23:35:08 +00:00
nullfs vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00
procfs Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
pseudofs pseudofs: Ignore unsupported commands in vop_setattr. 2019-05-28 20:54:59 +00:00
smbfs Replay r349334 by markj accidentally reverted by r349352 2019-06-25 06:14:00 +00:00
tmpfs Fix an issue with executing tmpfs binary. 2019-08-18 20:36:11 +00:00
udf Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
unionfs vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00