diff --git a/sys/amd64/include/param.h b/sys/amd64/include/param.h index 6dbeb4035925..9ddcf685b1c9 100644 --- a/sys/amd64/include/param.h +++ b/sys/amd64/include/param.h @@ -122,14 +122,6 @@ #endif #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ -/* - * Ceiling on amount of swblock kva space, can be changed via - * the kern.maxswzone /boot/loader.conf variable. - */ -#ifndef VM_SWZONE_SIZE_MAX -#define VM_SWZONE_SIZE_MAX (32 * 1024 * 1024) -#endif - /* * Mach derived conversion macros */ diff --git a/sys/boot/common/loader.8 b/sys/boot/common/loader.8 index 36f260c0d278..7386f72aa76c 100644 --- a/sys/boot/common/loader.8 +++ b/sys/boot/common/loader.8 @@ -613,17 +613,26 @@ Not all architectures use such buffers; see for details. .It Va kern.maxswzone Limits the amount of KVM to be used to hold swap -meta information, which directly governs the -maximum amount of swap the system can support. -This value is specified in bytes of KVA space -and defaults to 32MBytes on i386 and amd64. -Care should be taken -to not reduce this value such that the actual -amount of configured swap exceeds 1/2 the -kernel-supported swap. -The default of 32MB allows -the kernel to support a maximum of ~7GB of swap. -Only change +metadata, which directly governs the +maximum amount of swap the system can support, +at the rate of approximately 200 MB of swap space +per 1 MB of metadata. +This value is specified in bytes of KVA space. +If no value is provided, the system allocates +enough memory to handle an amount of swap +that corresponds to eight times the amount of +physical memory present in the system. +.Pp +Note that swap metadata can be fragmented, +which means that the system can run out of +space before it reaches the theoretical limit. +Therefore, care should be taken to not configure +more swap than approximately half of the +theoretical maximum. +.Pp +Running out of space for swap metadata can leave +the system in an unrecoverable state. +Therefore, you should only change this parameter if you need to greatly extend the KVM reservation for other resources such as the buffer cache or diff --git a/sys/i386/include/param.h b/sys/i386/include/param.h index 6a0495c4c952..c1e14245b635 100644 --- a/sys/i386/include/param.h +++ b/sys/i386/include/param.h @@ -122,14 +122,6 @@ #endif #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ -/* - * Ceiling on amount of swblock kva space, can be changed via - * the kern.maxswzone /boot/loader.conf variable. - */ -#ifndef VM_SWZONE_SIZE_MAX -#define VM_SWZONE_SIZE_MAX (32 * 1024 * 1024) -#endif - /* * Ceiling on size of buffer cache (really only effects write queueing, * the VM page cache is not effected), can be changed via