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