On 2024-10-21 08:42, Anton Lindqvist wrote:
On Sun, Oct 20, 2024 at 05:28:17AM -0600, David Gwynne wrote:
CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2024/10/20 05:28:17

Modified files:
        sys/uvm        : uvm_map.c uvm_map.h

Log message:
try to simplify the locking code around busy maps.

vm_maps have a "feature" where they can mark that they're being
operated on by a specific proc, and then release the rwlock protecting
their state. to relock, you have to be the same proc that marked
it busy.

this diff tries to simplify it a bit. it basically has threads check
the busy field up front and rechecks the busy field inside the
rwlock. if you can sleep, it will sleep up front for the busy field
to become clear, rather than sleep on either the busy field or the
rwlock. some code paths clear the busy field without holding the
rwlock, so it doesn't make sense to me to be waiting for the busy
field but sleeping somewhere else.

ok claudio@ mpi@

This caused by amd64 regress machine to panic. It goes straight to
reboot, no chance of capturing any output from ddb.

Here's a reproducer which compiles some Go application:

        $ make -C $BSDSRC/regress/lib/libcrypto/c2sp

My amd64 desktop machine also locks up while starting firefox.

Hello,

Maybe I hit the same problem last night - https://marc.info/?l=openbsd-misc&m=172946384419884&w=2

Best wishes,
Atanas

Reply via email to