CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2023/10/27 13:18:53
Modified files: sys/uvm : uvm_pdaemon.c uvm_swap.c uvm_swap.h uvmexp.h Log message: Make out-of-swap checks more robust. Consider that the swap space is full when 99% of it is filled with pages that are no longer present in memory. This prevents deadlocks when out-of-swap if some swap ranges had I/O errors and have been marked as 'bad', or if some pages are unreachable by the pagedaemon and still holding some slots. Also introduce uvm_swapisfilled() to check if there are some free slots in the swap. Note that we consider the swap space completly filled if it is not possible to write a full cluster. This prevents deadlocks if a few slots are never allocated. ok miod@