NetBSD-Bugs archive

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

Re: kern/56764



The following reply was made to PR kern/56764; it has been noted by GNATS.

From: Thomas Klausner <wiz%netbsd.org@localhost>
To: NetBSD bugtracking <gnats-bugs%netbsd.org@localhost>
Cc: 
Subject: Re: kern/56764
Date: Sat, 21 Feb 2026 14:19:35 +0100

 And again today:
 
 panic: kernel diagnostic assertion "uvmexp.swpgonly < uvmexp.swpginuse" failed: file "/usr/src/sys/uvm/uvm_pdaemon.c", line 795 swpgonly 26000749 swpginuse 25888760
 
 (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  0xffffffff80e2bfbf in kern_reboot (howto=howto@entry=260, bootstr=bootstr@entry=0x0) at /usr/src/sys/kern/kern_reboot.c:91
 #2  0xffffffff80e77295 in vpanic (fmt=0xffffffff816ee020 "kernel %sassertion \"%s\" failed: file \"%s\", line %d swpgonly %d swpginuse %d", ap=ap@entry=0xffffde247baa4e98)
     at /usr/src/sys/kern/subr_prf.c:288
 #3  0xffffffff81051cfe in kern_assert (fmt=fmt@entry=0xffffffff816ee020 "kernel %sassertion \"%s\" failed: file \"%s\", line %d swpgonly %d swpginuse %d")
     at /usr/src/sys/lib/libkern/kern_assert.c:51
 #4  0xffffffff80dd86a3 in uvmpd_scan_queue () at /usr/src/sys/uvm/uvm_pdaemon.c:795
 #5  uvmpd_scan () at /usr/src/sys/uvm/uvm_pdaemon.c:919
 #6  uvm_pageout (arg=<optimized out>) at /usr/src/sys/uvm/uvm_pdaemon.c:318
 #7  0xffffffff80210327 in lwp_trampoline ()
 #8  0x0000000000000000 in ?? ()
 (gdb) p uvmexp
 $1 = {pagesize = 4096, pagemask = 4095, pageshift = 12, npages = 32315697, free = 8039, paging = 16, wired = 4913, ncolors = 32, colormask = 31, zeropages = 0,
   reserve_pagedaemon = 1, reserve_kernel = 160, anonpages = 21282242, filepages = 4459464, execpages = 959813, freemin = 8192, freetarg = 10922, wiredmax = 10771899,
   nswapdev = 3, swpages = 133993646, swpgavail = 133993646, swpginuse = 25789384, swpgonly = 25706596, nswget = 29166374, faults = 2039508928, traps = -2132403363,
   intrs = 502227833, swtch = -13256194, softs = 754970585, syscalls = -364678381, pageins = 2547602, _unused1 = 0, _unused2 = 0, pgswapin = 0, pgswapout = 529198543,
   forks = 11607662, forks_ppwait = 3708387, forks_sharevm = 3708387, pga_zerohit = 0, pga_zeromiss = 0, zeroaborts = 0, colorhit = 578435610, colormiss = 694700272,
   cpuhit = 686404484, cpumiss = 586731398, fltnoram = 849845748, fltnoanon = 0, fltpgwait = 119329, fltpgrele = 0, fltrelck = -1500510270, fltrelckok = -1500820650,
   fltanget = 1101511225, fltanretry = 2987802, fltamcopy = 1912608152, fltnamap = 969584305, fltnomap = 252048530, fltlget = 31900090, fltget = -1503503167,
   flt_anon = 689900560, flt_acow = 411604461, flt_obj = -1188934567, flt_prcopy = 964935297, flt_przero = 303214857, pdwoke = 173361105, pdrevs = 37988, _unused3 = 0,
   pdfreed = 775174807, pdscans = 986789583, pdanscan = 4021869, pdobscan = 771157076, pdreact = 3977394, pdbusy = 32, pdpageouts = 33088753, pdpending = 496109791,
   pddeact = 1571316217, pdreanon = 0, pdrefile = 0, pdreexec = 0, bootpages = 1009928}
 
 again the numbers are different than in the assert, to wit:
 assert:         swpgonly 26000749 swpginuse 25888760
 struct uvmpexp: swpgonly 25706596 swpginuse 25789384
 
 so they are fine in the struct but not in the assert.
 But the assert is for exactly these:
 
 795                                     KASSERTMSG(uvmexp.swpgonly < uvmexp.swpginuse,
 796                                                "swpgonly %d swpginuse %d",
 797                                                uvmexp.swpgonly, uvmexp.swpginuse);
 
 so is something else modifying the values without a proper lock?
 
  Thomas
 


Home | Main Index | Thread Index | Old Index