opnsense-src/sys/fs/tmpfs
Mateusz Guzik cc3593fbd9 vfs: rework vnode list management
The current notion of an active vnode is eliminated.

Vnodes transition between 0<->1 hold counts all the time and the
associated traversal between different lists induces significant
scalability problems in certain workloads.

Introduce a global list containing all allocated vnodes. They get
unlinked only when UMA reclaims memory and are only requeued when
hold count reaches 0.

Sample result from an incremental make -s -j 104 bzImage on tmpfs:
stock:   118.55s user 3649.73s system 7479% cpu 50.382 total
patched: 122.38s user 1780.45s system 6242% cpu 30.480 total

Reviewed by:	jeff
Tested by:	pho (in a larger patch, previous version)
Differential Revision:	https://reviews.freebsd.org/D22997
2020-01-13 02:37:25 +00:00
..
tmpfs.h Including <sys/tmpfs.h> into non-kernel software leads to a 2019-12-19 16:39:52 +00:00
tmpfs_fifoops.c vfs: flatten vop vectors 2019-12-16 00:06:22 +00:00
tmpfs_fifoops.h sys/fs: further adoption of SPDX licensing ID tags. 2017-11-27 15:15:37 +00:00
tmpfs_subr.c Remove page locking for queue operations. 2019-12-28 19:04:00 +00:00
tmpfs_vfsops.c vfs: rework vnode list management 2020-01-13 02:37:25 +00:00
tmpfs_vnops.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
tmpfs_vnops.h Rework pathconf handling for FIFOs. 2017-12-19 22:39:05 +00:00