A bit of progress: in a kernel built with George Koehler's suggested
replacement of isync by sync and with uncommented GENERIC.MP
option MP_LOCKDEBUG
option WITNESS
and (getting rid of any dependence on Go) generating load
by running make -j64 build in /usr/src, I fairly quickly get a panic:

panic: acquiring blockable sleep lock with spinlock or critical
section held (rwlock) kmmaplk
Stopped at      panic+0x134:    ori r0,r0,0x0
    TID    PID    UID     PRFLAGS     PFLAGS  CPU  COMMAND
 484082  12380     21  0x18000003          0    7  cc
 104407  11776     21  0x18000003          0    3  cc
 182886  45104     21  0x18000003          0    6  cc
 385115  79953     21  0x18000003          0    2  cc
 158768  20484      0     0x14000      0x200    5  zerothread
*413982  47818      0     0x14000      0x200    1  reaper
panic+0x134
witness_checkorder+0x954
rw_enter_read+0x8c
vm_map_lock_read_ln+0x38
uvmfault_lookup+0x114
uvm_fault_check+0x68
uvm_fault+0x12c
trap+0x7a4
trapagain+0x4
--- trap (type 0x300) ---
pmap_remove+0x120
uvm_unmap_kill_entry_withlock+0x1c0
uvm_map_teardown+0x184
uvmspace_free+0x70
uvm_exit+0x38
https://www.openbsd.org/ddb.html describes the minimum info required in bug
reports.  Insufficient info makes it difficult to find and fix bugs.
ddb{1}>

Rebooting and retrying, it dies with
mtx_enter: 0x10e0470 lock spun out
ddb{3}> __mp_lock_spin: 0x103e818 lock spun out

Reply via email to