Subject: Re: uvmpg.swpgonly botch
To: Ignatios Souvatzis <is@jocelyn.rhein.de>
From: Chuck Silvers <chuq@chuq.com>
List: tech-kern
Date: 04/07/1999 00:05:45
Ignatios Souvatzis writes:
> 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?

scott was having the same problem on mac68k, but it went away
when he pulled in the fixes jason had made to the hp300 pmap.
maybe the amiga needs the same fixes?

if that doesn't help, I'd start with "call uvm_dump".

-Chuck


> 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++;