Module Name: src Committed By: chs Date: Wed May 4 15:49:55 UTC 2022
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: arc.c Log Message: fix ARC checks for available memory: there's an extra check that we inherited from FreeBSD that tries to detect KVA exhaustion on platforms with limited KVA, but the condition that decided whether to use the extra check was using a FreeBSDism that doesn't exist on NetBSD, resulting in this check being used on all platforms. on amd64 systems with lots of memory, this extra check would result in the ARC thinking that it constantly needed to reclaim memory, resulting in all the xcall threads running all the time but not doing anything useful. change this condition so that this extra check for KVA exhaustion is only used on 32-bit platforms. fixes PR 55707. To generate a diff of this commit: cvs rdiff -u -r1.20 -r1.21 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.20 src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.21 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c:1.20 Wed Apr 21 10:02:34 2021 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/arc.c Wed May 4 15:49:55 2022 @@ -3963,7 +3963,7 @@ arc_available_memory(void) } #endif /* illumos */ -#if defined(__i386) || !defined(UMA_MD_SMALL_ALLOC) +#if !defined(_LP64) /* * If we're on an i386 platform, it's possible that we'll exhaust the * kernel heap space before we ever run out of available physical @@ -5750,7 +5750,7 @@ arc_memory_throttle(uint64_t reserve, ui static uint64_t page_load = 0; static uint64_t last_txg = 0; -#if defined(__i386) || !defined(UMA_MD_SMALL_ALLOC) +#if !defined(_LP64) available_memory = MIN(available_memory, ptob(vmem_size(heap_arena, VMEM_FREE))); #endif