Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jun 2006 16:28:49 +0100
From:      Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
To:        David Wolfskill <david@catwhisker.org>
Cc:        stable@freebsd.org
Subject:   Re: Help?  6.1-S: Fatal trap 12: page fault while in kernel mode
Message-ID:  <1151076529.62769.17.camel@buffy.york.ac.uk>
In-Reply-To: <20060615232240.GX32476@bunrab.catwhisker.org>
References:  <20060615232240.GX32476@bunrab.catwhisker.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2006-06-15 at 16:22 -0700, David Wolfskill wrote:
> I had one of these a couple of weeks ago or so; I had been distracted by
> some more urgent matters that came up (the panic was on a machine under
> test; the more urgent matters were little things like needing to deploy
> a handful of resolvers on our network because existing ones were running
> on systems that had provided evidence of being prone to imminent
> failure).
> 
> Anyway:  I updated the 2 boxen under test to 6.1-STABLE as of this
> morning, and finally(!) had a chance to re-try the failing operation.
> 
> It went "kaboom!" again.  :-{  (Well, there's something to be said for
> consistency.  :-})
> 
> It seems to run OK (albeit slowly) for a couple of minutes; then the
> serial console reports:
> 
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 06
> fault virtual address   = 0x0
> fault code              = supervisor read, page not present
> instruction pointer     = 0x20:0x0
> stack pointer           = 0x28:0xf09b3b98
> frame pointer           = 0x28:0xf09b3bcc
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 23782 (ecelerity)
> [thread pid 23782 tid 100120 ]
> Stopped at      0:      *** error reading from address 0 ***
> db> trace
> Tracing pid 23782 tid 100120 td 0xcc445180
> db> 

OK, seeing as nobody has offered any advice, I'll have a go.

Have you got a debug kernel?  If so, get a kernel dump.  Load it into
kgdb.  Chances are "bt" won't work as the instruction pointer is zero,
so instead you need to display the stack directly:

(kgdb) x/80xw 0xf09b3b98

Look for any addresses in the 0xc0xxxxxx range - these will probably be
pointers to kernel functions.  Drop out of kgdb, and try to find out
which functions these belong to:

addr2line 0xc0639bd6 -e kernel.debug
/usr/src/sys/kern/tty.c:1653

You can build up a backtrace and knowledge of atguments given to
functions this way.

Gavin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1151076529.62769.17.camel>