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

Thomas Klausner <[email protected]>
Newsgroups gmane.os.netbsd.current
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.