freebsd-skq/sys/fs/unionfs
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
..
union_subr.c Try to decrease the number of bugs in unionfs after the VV_TEXT flag removal. 2019-08-01 14:40:37 +00:00
union_vfsops.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
union_vnops.c vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00
union.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00