summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2026-01-12 05:54:58 +0200
committerKonstantin Belousov <kib@FreeBSD.org>2026-01-13 16:03:14 +0200
commit457b940bfb6a228af1281f357b627ecf1e26fea5 (patch)
tree2dffc2785b71455517e02b16ed3f552c1b5396ec /share
parentd160447129fe060b28bcd6ba429d17afdf494ff2 (diff)
tuning.7: add more explanation about swap (over-)accounting
Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D54572
Diffstat (limited to 'share')
-rw-r--r--share/man/man7/tuning.715
1 files changed, 15 insertions, 0 deletions
diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7
index 44c427c4559d..a3709ce82b8c 100644
--- a/share/man/man7/tuning.7
+++ b/share/man/man7/tuning.7
@@ -222,6 +222,21 @@ and
.Va vm.stats.vm.v_wire_count
sysctls, respectively).
.Pp
+Due to the architecture of the
+.Fx
+virtual memory subsystem, the use of copy on write (CoW) anonymous
+memory, e.g. on
+.Xr fork 2 ,
+causes swap reservation for all three regions (VM objects),
+as in the original pre-fork mapping, and its copies in
+the parent and child, instead of only two.
+Eventually the subsystem tries to optimize the internal layout
+of the tracking for CoW and often removes (collapses) no longer
+needed backing objects, re-assigning its pages and swap
+reservations to the copies.
+Coolapsing frees the swap reserve, but it is not guaranteed
+to happen.
+.Pp
The
.Va kern.ipc.maxpipekva
loader tunable is used to set a hard limit on the