CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2026/07/07 11:32:56
Modified files:
sys/uvm : uvm_pager.c uvm_pager.h uvm_pdaemon.c
Log message:
Allocate the psegs that are reserved for the pagedeamon only if no other
psegs are available. Let the pagedeamon only start a new swap cluster
if there are still at least two reserved slots available. This goes a
long way towards guaranteeing that we have the resources to actually
write out the swap cluster once it is filled. This is important since
the code that drops a cluster may need to acquire an rwlock, which means
the pagedaemon could sleep. This is undesirable and may even lead to
deadlocks.
Note that there still is a possibility that we may fail to allocate a buf
from the bufpool, which would lead us to the same undesirable path. So
far I've not been able to hit that case.
ok claudio@