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@

Reply via email to