Consider pmemrange regions when trying to free pages from the inactive list.
authormpi <mpi@openbsd.org>
Tue, 28 Jun 2022 19:31:30 +0000 (19:31 +0000)
committermpi <mpi@openbsd.org>
Tue, 28 Jun 2022 19:31:30 +0000 (19:31 +0000)
commit5a0e53e3debe9582e2b41828bfdcb668dc056e69
treeb6eeafb2d68c4eb27a328f630fa1e712e9b2e555
parent1ff2fd5024f7dde624085fb41339e9dbbfe63fec
Consider pmemrange regions when trying to free pages from the inactive list.

Instead of starting with the first page on the inactive list pick the first
one that fits in the range of a given pmemrange region.

Fix an issue where the page daemon would be hogging a CPU without freeing any
page because the global limits are satisfied.

The algorithm could certainly be revisited, the LRU is not really working and
there is a huge delay before recovering when the first pages need to be swapped and the system is in OOM situation but at least there is no starvation and the
system now recovers.

ok beck@, kettenis@
sys/uvm/uvm_pdaemon.c