CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2026/04/13 09:23:57
Modified files:
sys/uvm : uvm_swap.c
Log message:
The fault handling code that deals with getting back from swap for an
anon does not expect failures because we are short on memory. These
are synchronous operations so we're expected to wait on memory to
become available. This got broken in rev 1.178 (Back out the
pagedaemon "oom" reserve and sleeping point). Bring back the code to
allocate bounce memory using uvm_pglistalloc(9) but only use it for
the !async case (which will never be use by the pagedaemon).
This fixes random segfaults when under memory pressure and init dying
with SIGILL because it can't copy out a signal frame to the stack when
it happens to trigger such a segfault.
With deraadt@, who wrote the code to consolidate the allocation of
bounce memory.
ok deraadt@