Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: swapctl: SWAP_STATS different to SWAP_NSWAP (2 != 3)



On Thu, Feb 12, 2026 at 06:14:41PM +0100, Matthew Green wrote:
> > Hi!
> >
> > While trying to take a closer look at https://gnats.netbsd.org/56764
> > I'm keeping 'swapctl -l; sleep 1' running in a loop next to a bulk
> > build.
> 
> can you see if -current no longer has this problem?  i think i saw
> what was wrong that would trigger this problem and commited a fix.

I think that might have made it worse:

reboot after panic: [ 8711.8445065] panic: lock error: Mutex: mutex_vector_enter,551: locking against myself: lock 0xffffffff81ab3d80 cpu 3 lwp 0xffff9cbfcb4a1800

(gdb) bt
#0  0xffffffff80239eca in cpu_reboot (howto=howto@entry=260, bootstr=bootstr@entry=0x0) at /usr/src/sys/arch/amd64/amd64/machdep.c:709
#1  0xffffffff80e2bebf in kern_reboot (howto=howto@entry=260, bootstr=bootstr@entry=0x0) at /usr/src/sys/kern/kern_reboot.c:91
#2  0xffffffff80e77195 in vpanic (fmt=fmt@entry=0xffffffff816f8770 "lock error: %s: %s,%zu: %s: lock %p cpu %d lwp %p", ap=ap@entry=0xffffa7a4937852e8) at /usr/src/sys/kern/subr_prf.c:288
#3  0xffffffff80e7726a in panic (fmt=fmt@entry=0xffffffff816f8770 "lock error: %s: %s,%zu: %s: lock %p cpu %d lwp %p") at /usr/src/sys/kern/subr_prf.c:209
#4  0xffffffff80e6be29 in lockdebug_abort (func=0xffffffff81592770 <__func__.2> "mutex_vector_enter", line=551, lock=0xffffffff81ab3d80 <uvm_swap_data_lock>, ops=0xffffffff81a8c820 <mutex_adaptive_lockops>,
    msg=0xffffffff81622468 "locking against myself") at /usr/src/sys/sys/cpu.h:109
#5  0xffffffff80e1e0bd in mutex_vector_enter (mtx=0xffffffff81ab3d80 <uvm_swap_data_lock>) at /usr/src/sys/kern/kern_mutex.c:551
#6  0xffffffff80de0881 in uvm_swapisfull () at /usr/src/sys/uvm/uvm_swap.c:1739
#7  0xffffffff80dd87af in uvm_reclaimable () at /usr/src/sys/uvm/uvm_pdaemon.c:967
#8  0xffffffff80dbeb44 in uvmfault_promote (ufi=ufi@entry=0xffffa7a4937855d0, oanon=oanon@entry=0x0, uobjpage=uobjpage@entry=0xffffffffffffffff, nanon=nanon@entry=0xffffa7a4937855c8,
    spare=spare@entry=0xffffa7a493785628) at /usr/src/sys/uvm/uvm_fault.c:623
#9  0xffffffff80dc07f8 in uvm_fault_lower_promote (ufi=0xffffa7a4937855d0, flt=0xffffa7a493785608, uobj=<optimized out>, uobjpage=0xffffffffffffffff) at /usr/src/sys/uvm/uvm_fault.c:2402
#10 uvm_fault_lower (ufi=0xffffa7a4937855d0, flt=0xffffa7a493785608, pages=0xffffa7a4937856c0) at /usr/src/sys/uvm/uvm_fault.c:1964
#11 uvm_fault_internal (orig_map=orig_map@entry=0xffff9cd8c58d5ac0, vaddr=vaddr@entry=126083539185664, access_type=access_type@entry=2, fault_flag=fault_flag@entry=0) at /usr/src/sys/uvm/uvm_fault.c:946
#12 0xffffffff8023c5d4 in trap (frame=0xffffa7a493785870) at /usr/src/sys/arch/amd64/amd64/trap.c:523
#13 0xffffffff80234ad4 in alltraps ()
#14 0xffffffff80234353 in copyout ()
#15 0xffffffff80ddf279 in uvm_swap_stats (ptr=0x72ac1c90b000 <error: Cannot access memory at address 0x72ac1c90b000>, misc=2, f=f@entry=0x0, len=len@entry=1056, retval=retval@entry=0xffffa7a493785fb0)
    at /usr/src/sys/uvm/uvm_swap.c:818
#16 0xffffffff80ddfa3c in uvm_swap_stats (ptr=<optimized out>, misc=<optimized out>, f=0x0, len=1056, retval=0xffffa7a493785fb0) at /usr/src/sys/uvm/uvm_swap.c:791
#17 sys_swapctl (l=0xffff9cbfcb4a1800, uap=0xffffa7a493786000, retval=0xffffa7a493785fb0) at /usr/src/sys/uvm/uvm_swap.c:561
#18 0xffffffff805cfa31 in sy_call (sy=0xffffffff81a89568 <sysent+6504>, l=0xffff9cbfcb4a1800, uap=0xffffa7a493786000, rval=0xffffa7a493785fb0) at /usr/src/sys/sys/syscallvar.h:65
#19 sy_invoke (sy=0xffffffff81a89568 <sysent+6504>, l=0xffff9cbfcb4a1800, uap=0xffffa7a493786000, rval=0xffffa7a493785fb0, code=271) at /usr/src/sys/sys/syscallvar.h:94
#20 syscall (frame=0xffffa7a493786000) at /usr/src/sys/arch/x86/x86/syscall.c:137
#21 0xffffffff8021025d in handle_syscall ()

 Thomas


Home | Main Index | Thread Index | Old Index