Subject: Re: -current TLB panics on 3100?
To: William O Ferry <woferry@iname.com>
From: Michael L. Hitch <mhitch@lightning.msu.montana.edu>
List: port-pmax
Date: 11/07/1999 13:42:53
On Sun, 7 Nov 1999, William O Ferry wrote:
> trap: TLB miss (load or instr. fetch) in kernel mode
> status=0x8fc34, cause=0x30000000, epc=0x8014b628, vaddr=0x100
> pid=251 cmd=xntpd usp=0x7ffffce0 ksp=0xc2163e90
> stopped in xntpd at trap+0x2f4: lw a2,0(v1)
If this is where I think it is, it looks like the kernel is processing a
user TLB modify exception [pmap has set the page to read-only, and uses
the TLBmod exception to emulate page-modification status]. The kernel
TLB miss appears to be occuring when the TLBmod exception handler is
trying to load the first-level page table entry.
pmap = p->p_vmspace->vm_map.pmap;
if (!(pte = pmap_segmap(pmap, vaddr)))
^^^^^^^^^^^^^^^^^^^^^^^
This is where I think the kernel exception is occuring.
panic("utlbmod: invalid segmap");
pte += (vaddr >> PGSHIFT) & (NPTEPG - 1);
entry = pte->pt_entry;
You could put a check just before the if statement to see if pmap is
NULL, and if it's not NULL, check pmap->pm_segtab for NULL.
--
Michael L. Hitch mhitch@montana.edu
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA