freebsd-dev/sys/contrib
Mateusz Guzik e9272225e6 vfs: fix vnlru marker handling for filtered/unfiltered cases
The global list has a marker with an invariant that free vnodes are
placed somewhere past that. A caller which performs filtering (like ZFS)
can move said marker all the way to the end, across free vnodes which
don't match. Then a caller which does not perform filtering will fail to
find them. This makes vn_alloc_hard sleep for 1 second instead of
reclaiming, resulting in significant stalls.

Fix the problem by requiring an explicit marker by callers which do
filtering.

As a temporary measure extend vnlru_free to restart if it fails to
reclaim anything.

Big thanks go to the reporter for testing several iterations of the
patch.

Reported by:	Yamagi <lists yamagi.org>
Tested by:	Yamagi <lists yamagi.org>
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D29324
2021-03-18 14:59:03 +00:00
..
alpine-hal
ck Remove FreeBSD/armv4 specific bits from CK. 2020-04-13 23:16:32 +00:00
cloudabi
dev ice_ddp: Update package file to 1.3.19.0 2021-02-22 18:02:19 -08:00
device-tree Re-apply f81b2b9a8a to the new device-tree import 2021-01-15 20:07:13 +01:00
dpdk_rte_lpm Fix dpdk/ldradix fib lookup algorithm preference calculation. 2021-03-07 22:17:53 +00:00
edk2 Document upgrade procedure in FREEBSD-upgrade 2020-06-04 20:48:57 +00:00
ena-com Adjust ENA driver files to latest ena-com changes 2020-11-18 14:59:22 +00:00
ipfilter/netinet ipfilter: Make LARGE_NAT a tunable. 2021-02-22 11:20:18 -08:00
libb2
libfdt
libnv Rename nvpair.c to bsd_nvpair.c to not conflict with openzfs' version. 2020-06-27 00:55:03 +00:00
libsodium Add chacha20poly1305 support to crypto build 2020-02-16 00:03:09 +00:00
ncsw [PowerPC] [Book-E] Remove obsolete interrupt binding workaround 2020-02-25 22:03:30 +00:00
ngatm
octeon-sdk Fix misleading indentation warning in OCTEON1 kernel 2020-03-17 11:59:45 +00:00
openzfs vfs: fix vnlru marker handling for filtered/unfiltered cases 2021-03-18 14:59:03 +00:00
pcg-c/include pcg-c: Add 'static' to inline function definitions 2020-08-15 18:46:26 +00:00
rdma/krping Fix memory leaks in error paths in krping. 2021-01-08 12:35:55 +01:00
v4l
vchiq/interface vchiq: Rename timer func so they do not conflict with linuxkpi 2020-11-17 14:41:23 +00:00
x86emu
xz-embedded Modularize xz. 2019-02-26 19:55:03 +00:00
zlib MFV r351500: Fix CLEAR_HASH macro to be usable as a single statement. 2019-08-26 00:46:39 +00:00
zstd libprivatezstd: Restrict symbol visibility similar to upstream 2021-01-03 11:26:46 -08:00