Date: Wed, 30 Jun 1999 01:13:06 +0800 From: Peter Wemm <peter@netplex.com.au> To: Andrzej Bialecki <abial@webgiro.com> Cc: freebsd-current@freebsd.org Subject: Re: Panic in vm_page_zero_idle Message-ID: <19990629171306.122DB82@overcee.netplex.com.au> In-Reply-To: Your message of "Tue, 29 Jun 1999 15:13:17 %2B0200." <Pine.BSF.4.05.9906291506290.45915-100000@freja.webgiro.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Andrzej Bialecki wrote:
> Hi,
>
> Sources are from yesterday, machine is Toshiba Portege 7020CT. During make
> -j24 buildworld machine dies with the following panic mesage (notice
> absence of register dump):
>
> kernel: type 12 trap, code=0
> Stopped at vm_page_zero_idle+0xc9: movl %eax,0x4(%edx)
>
> db> tr
> vm_page_zero_idle(e,66a,2,183f9ff,756e6547) at vm_page_zero_idle+0xc9
> idle_loop() at idle_loop+0x2d
That's because there is no process context at this point, and nowhere the
registers are saved for the idle ``context''.
Trap 12 is a page fault. Do a 'show registers' to see what's up. I
would like to know what %edx is.
It's trapping here:
m = vm_page_list_find(PQ_FREE, free_rover, FALSE);
if (m != NULL && (m->flags & PG_ZERO) == 0) {
--(*vm_page_queues[m->queue].lcnt);
TAILQ_REMOVE(vm_page_queues[m->queue].pl, m, pageq);
^^^^^^^^^^^^^^^^^^^^^^^^^^^
m->queue = PQ_NONE;
splx(s);
Specifically, vm_page_queues[m->queue].pl is invalid or the tailq corrupt
or something evil along those lines. Or, m->queue is bogus and causing
an out of bounds array lookup. Hmm, do a show registers and record %eax
at this point too.
Cheers,
-Peter
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990629171306.122DB82>
