CVSROOT: /cvs Module name: src Changes by: clau...@cvs.openbsd.org 2025/06/02 12:49:04
Modified files: sys/arch/alpha/alpha: pmap.c sys/arch/alpha/include: pmap.h sys/arch/i386/include: pmap.h sys/arch/m88k/include: pmap.h sys/arch/m88k/m88k: pmap.c sys/arch/mips64/include: pmap.h sys/arch/mips64/mips64: pmap.c sys/arch/sparc64/include: pmap.h sys/arch/sparc64/sparc64: db_interface.c pmap.c sys/uvm : uvm_glue.c uvm_glue.h uvm_pdaemon.c uvm_pmap.h Log message: Collect uvm_swapout_threads(), pmap_collect() and __HAVE_PMAP_COLLECT and take them behind the shed. The uvm code used to call into pmap_collect is overly optimistic and thinks that a process that has all its thread sleeping will remain like that for while without holding any relevant locks. This is combined with the fact that pmap_collect functions are not MP safe. The result are bad use-after-free errors. Since only a few archs implement this feature it is probably better to just remove it then trying to fix all of the issues. OK mpi@, kettenis@, deraadt@