freebsd-nq/sys
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
..
amd64 amd64: clean up cpu_switch.S 2019-08-28 19:40:57 +00:00
arm Fix bogusly declared WERRORs in kernel build 2019-08-25 19:39:31 +00:00
arm64 arm64: rk3399: pinctrl: Add gpio banks and fix iomux 2019-08-27 18:00:01 +00:00
bsm
cam Always check cam_periph_error() status for ERESTART. 2019-08-27 16:41:06 +00:00
cddl Avoid direct accesses of the vm_page wire_count field. 2019-08-28 18:01:54 +00:00
compat Change locking requirements for VOP_UNSET_TEXT(). 2019-08-18 20:24:52 +00:00
conf Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
contrib Document ipf_nat_hashtab_add() return codes. 2019-08-28 04:55:17 +00:00
crypto Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
ddb proc: eliminate the zombproc list 2019-08-28 16:18:23 +00:00
dev cxgbe/t4_tom: Initialize all TOE connection parameters in one place. 2019-08-27 04:19:40 +00:00
dts dtso: allwinner: Add an overlay for H3 thermal node 2019-08-24 13:26:34 +00:00
fs vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00
gdb Fix i386 build after r351368 2019-08-22 04:31:07 +00:00
geom
gnu
i386 i386: Implement atomic_load_64(9) and atomic_store_64(9). 2019-08-18 15:58:44 +00:00
isa
kern vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00
kgssapi Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
libkern Remove zlib 1.0.4 from kernel. 2019-08-25 17:13:00 +00:00
mips mips: hide regnum definitions behind _KERNEL/_WANT_MIPS_REGNUM 2019-08-22 21:43:21 +00:00
modules Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
net Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
net80211
netgraph Convert ng_deflate to use new zlib. 2019-08-23 07:24:36 +00:00
netinet Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
netinet6 Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
netipsec
netpfil
netsmb Stop using des_cblock * for arguments to DES functions. 2019-08-26 17:25:07 +00:00
nfs
nfsclient
nfsserver
nlm
ofed OFED: Fix accidental double-copy of rdma_sdp.h in r351176 2019-08-18 04:19:41 +00:00
opencrypto Adjust the deprecated warnings for /dev/crypto to be less noisy. 2019-08-27 21:29:37 +00:00
powerpc Revert a part of r350883 that should never have gone in 2019-08-27 14:04:32 +00:00
riscv Move phys_avail definition into MI code. It is consumed in the MI layer and 2019-08-16 00:45:14 +00:00
rpc
security vm_map_simplify_entry considers merging an entry with its two 2019-08-25 07:06:51 +00:00
sparc64 Move phys_avail definition into MI code. It is consumed in the MI layer and 2019-08-16 00:45:14 +00:00
sys vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00
teken
tests
tools
ufs De-commision the MNTK_NOINSMNTQ kernel mount flag. 2019-08-23 19:40:10 +00:00
vm vm: only lock tmpfs vnode shared in vm_object_deallocate 2019-08-28 19:28:27 +00:00
x86 Move phys_avail definition into MI code. It is consumed in the MI layer and 2019-08-16 00:45:14 +00:00
xdr
xen
Makefile