[Bug 280846] Low memory freezes / OOM: a thread waited too long to allocate a page

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 29 Oct 2024 21:13:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280846

--- Comment #68 from Mark Millard <marklmi26-fbsd@yahoo.com> ---
(In reply to Henrich Hartzer from comment #67)

Laundry pages are previously active pages that were
modified (not a copy of what is sorted on media) and
have been prepared for potentially writing out to
swap space. (Swap space can be added at any time so
being prepared does not require that any Swap space
be in a ce use yet.) If they were deleted without
being written to swap space, data/information would
be lost. Unless the program requests such a deletion,
this loss would be a major error.

Note that there can be modified pages that are Inactive
and have not yet been turned into laundry pages.

Memory pressure tends to free pages that were not modified
but are Inactive. This is because there is a place to go
back to in order to make a copy the original content:
the free activity does not destroy the information but
makes memory available for other uses.

I'll note that memory "pressure" created by one process
can cause another process(s) to end up with more laundry
or even to have some of its laundry pages paged out to
swap space. Having the laundry figure change at the system
level does not directly indicate which process(s) had some
pages reclassified. Avoid assuming that the process you
are using is the one that has its laundry status change
when the system figure changes.

For all I know, when memory "pressure" decreases, various
processes might have their laundry contribution decrease
as well (some going back to Inactive?).

One thing that does move things out of the laundry
category is that page being put to active use again:
Back to Active.

One process that always stays runnable and keeps enough
RAM in active use to prevent meeting the threshold for
free RAM is enough to lead to OOM activity. For such a
context, that always runnable process might not be one
of the processes eventually killed and its pages will
not become laundry (or even Inactive).

-- 
You are receiving this mail because:
You are the assignee for the bug.