CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2026/01/04 14:04:46
Modified files:
sys/uvm : uvm_pdaemon.c
Log message:
Do not force the page daemon to sleep when there are outstanding paging
requests.
This partially reverts the changes made in rev 1.131
Currently, this serializes the processing of pmr requests when
scheduling pageouts into only processing one pmr request. while there
appears to be a desire not to "over swap" this also I believe means
we can "under swap" if we can not schedule enough pageouts to
satisfy this request, at which point I believe we can miss wakeups
under load - especially if the pmr request can not be satisfied
and remains on the list.
I think the intent here can be achieved, but not without some
careful rework first. The current method of only waking up one
sleeper on any pmr request is very different from how this
code worked in the past and very different from the rest of the
kernel, where processes compete for freed resources to progress
the entire system forward. Serializing only one pmr requestor
to be woken up after every round of potentally sceheduling a bunch
of pageouts to disk seems a recepie for problems.
So let's back this piece out for now, pending a discussion of
what we want to achieve with the page daemon changes and how to
potentially achieve it without missed wakeups and deadlocks.
ok deraadt@