Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Jul 1998 01:23:30 -0500
From:      "Les LaCroix" <Les.LaCroix@Carleton.edu>
To:        freebsd-questions@FreeBSD.ORG
Subject:   (long) page fault in kernel mode: suggestions?
Message-ID:  <4027246050.901675410@miranda.INFOZOO.com>

next in thread | raw e-mail | index | archive | help
I've been fighting a "fatal trap 12: page fault while in kernel mode"
problem.  Clues are appreciated.  I'm running out of ideas.

New machine (configuration below).  Crashes in a similar (if not the exactly
the same) way with GENERIC kernel and a custom kernel with virtually
everything removed, in both 2.2.6 and 2.2.7.  I've not changed anything in
the kernel source.

I don't have the panic screen from other days, but tonight it crashed 3
times in 5 hours like this:

Fatal trap 12: page fault while in kernel mode
fault virtual address       = 0xe011087c
fault code                  = supervisor read, page not present
instruction pointer         = 0x8:0xe011087c
stack pointer               = 0x10:0xf019cfa0
frame pointer               = 0x10:0xf019cfb8
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             = Idle
interrupt mask              =
panic: page fault

Each crash was the same: same instruction, stack and frame pointers, same
everything.  gdb -k on the dumps all look like:

(kgdb) symbol-file /kernel
Reading symbols from /kernel...done.
(kgdb) exec-file /var/crash/kernel.2
(kgdb) core-file /var/crash/vmcore.2
IdlePTD 1c1000
current pcb at 1a8bb0
panic: page fault
#0  boot (howto=256) at ../../kern/kern_shutdown.c:266
266                                     dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0  boot (howto=256) at ../../kern/kern_shutdown.c:266
#1  0xf010eb12 in panic (fmt=0xf017693f "page fault")
    at ../../kern/kern_shutdown.c:400
#2  0xf017751e in trap_fatal (frame=0xf019cf64) at
./../i386/i386/trap.c:772
#3  0xf0176fe0 in trap_pfault (frame=0xf019cf64, usermode=0)
    at ../../i386/i386/trap.c:681
#4  0xf0176c77 in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = -1073741824,
      tf_esi = -535754628, tf_ebp = -266743880, tf_isp = -266743924,
      tf_ebx = -260199936, tf_edx = -226815792, tf_ecx = 1073741823,
      tf_eax = -2147483648, tf_trapno = 12, tf_err = 0, tf_eip = -535754628,
      tf_cs = 8, tf_eflags = 66118, tf_esp = -267363380, tf_ss =
-260199936})
    at ../../i386/i386/trap.c:324
#5  0xe011087c in ?? ()

I'm not familiar enough (yet) with gdb and kernel debugging to try to figure
out what's going on.  My current hunch is that something is corrupting the
stack, changing the return address, and causing the page fault when
something does a return.

The machine:

Epox 100Mhz 51MVP3E-M ATX board with 1MB cache:
        bus clock       = 100 MHz
        multiplier      = 3x
        SDRAM clock     = CPU bus clock
AMD K6 300 MMX CPU
128MB PC100 SDRAM/ECC 8ns 168-pin DIMM w/ EPROM, 100MHz Mbrds
Seagate 6.4GB 7200 RPM IDE drive (ST36530A)
Adaptec ISA 1520 SCSI-2 Controller (for an external ZIP, but nothing
attached yet)
Intel EtherExpress Pro/100B
8MB Millenium II PCI (but not running X or doing anything but dumb console
work yet)
Teac 24x, IDE (ATAPI)

There's nothing interesting running, usually.  I killed sendmail and cron
(although I left inetd, syslogd, portmap and a couple getty's running).

Thanks in advance.
------
Les LaCroix, Carleton College

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



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