Subject: uvmpg.swpgonly botch
To: None <tech-kern@netbsd.org>
From: Ignatios Souvatzis <is@jocelyn.rhein.de>
List: tech-kern
Date: 04/07/1999 07:34:20
Hello,

I tried a low-memory boot, (4 MB DraCo / 68060 cpu / GENERIC + ISDN kernel)

and shortly after starting sshd (and before xdm
was really visible), I got

panic: uvmexp.swpgonly botch
stopped in pagedaemon at _Debugger+0x6

trace shows:

_Debugger
_panic
_uvmpd_scan_inactive
_uvmpd_scan
_uvm_pageout
_start_page_daemon
_proc_trampoline

with both an April 4 1.4A and yestereves (CET) 1.4_ALPHA kernel (DRACO with
only INET but added i4b). From the code snippet below I guess this is either
a missed uvmexp.swpgonly--, uvmexp.swpages++, or a real problem.

Anything I can do (besides undefining DIAGNOSTIC and pray?) Chuck, anything
you want me to look at from the db> prompt?

Regards,
	Ignatios


    541                         /*
    542                          * this page is dirty, but we can't page it out
    543                          * since all pages in swap are only in swap.
    544                          * reactivate it so that we eventually cycle
    545                          * all pages thru the inactive queue.
    546                          */
    547 #ifdef DIAGNOSTIC
    548                         if (uvmexp.swpgonly > uvmexp.swpages) {
    549                                 panic("uvmexp.swpgonly botch");
    550                         }
    551 #endif
    552                         if ((p->pqflags & PQ_SWAPBACKED) &&
    553                             uvmexp.swpgonly == uvmexp.swpages) {
    554                                 dirtyreacts++;