"Page fault while in kernel mode" without debugging options

Ryan R. freebsd at epicoftimewasted.com
Tue Jul 26 21:38:38 GMT 2005


I'm running 6.0-BETA1, cvsup'd and rebuilt last night.  I decided to build
a kernel without debugging options (KDB, DDB, GDB, INVARIANTS,
INVARIANT_SUPPORT, WITNESS, and WITNESS_SKIPSPIN), but keeping
"makeoptions= DEBUG=-g".  As soon as I put a little load on the system
(make buildworld), I received this panic:

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x678bf5e8b00
fault code              = supervisor write, page not present
instruction pointer     = 0x8:0xffffffff803a2f7a
stack pointer           = 0x10:0xffffffffa7da1780
frame pointer           = 0x10:0x0
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 799 (sh)
trap number             = 12
panic: page fault


Here's a chunk of the back trace:

This GDB was configured as "amd64-marcel-freebsd".
#0  doadump () at pcpu.h:172
172             __asm __volatile("movq %%gs:0,%0" : "=r" (td));
(kgdb) bt
#0  doadump () at pcpu.h:172
#1  0x0000000000000000 in ?? ()
#2  0xffffffff8025e157 in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:397
#3  0xffffffff8025e7d6 in panic (fmt=0xffffff002daefbe0 "@\203ß-") at
/usr/src/sys/kern/kern_shutdown.c:553
#4  0xffffffff803a75ef in trap_fatal (frame=0xffffff002daefbe0,
eva=18446742974967546688) at /usr/src/sys/amd64/amd64/trap.c:664
#5  0xffffffff803a790c in trap_pfault (frame=0xffffffffa7da16d0,
usermode=0) at /usr/src/sys/amd64/amd64/trap.c:580
#6  0xffffffff803a7bc3 in trap (frame=
      {tf_rdi = -140737488355328, tf_rsi = -140737421235584, tf_rdx = 0,
tf_rcx = -1098740149840, tf_r8 = -1098740149840, tf_r9 =
-1098469670912, tf_rax = 1, tf_rbx = -1608022720, tf_rbp = 0, tf_r10
= 1026768269655, tf_r11 = 68451217977, tf_r12 = -1098740149920,
tf_r13 = 7115676486328, tf_r14 = 140737488355328, tf_r15 = 0,
tf_trapno = 12, tf_addr = 7115676486400, tf_flags = -1608010096,
tf_err = 2, tf_rip = -2143670406, tf_cs = 8, tf_rflags = 66118,
tf_rsp = -1478879344, tf_ss = 0}) at
/usr/src/sys/amd64/amd64/trap.c:359
#7  0xffffffff803979cb in calltrap () at
/usr/src/sys/amd64/amd64/exception.S:170
#8  0xffff800000000000 in ?? ()
#9  0xffff800004002a80 in ?? ()
#10 0x0000000000000000 in ?? ()
#11 0xffffff002dfbd1b0 in ?? ()
#12 0xffffff002dfbd1b0 in ?? ()
#13 0xffffff003e1b0000 in ?? ()
#14 0x0000000000000001 in ?? ()
#15 0xffffffffa0278540 in ?? ()
#16 0x0000000000000000 in ?? ()
#17 0x000000ef10287157 in ?? ()
#18 0x0000000ff002b239 in ?? ()
#19 0xffffff002dfbd160 in ?? ()
#20 0x00000678bf5e8ab8 in ?? ()
#21 0x0000800000000000 in ?? ()
#22 0x0000000000000000 in ?? ()
#23 0x000000000000000c in ?? ()
#24 0x00000678bf5e8b00 in ?? ()
#25 0xffffffffa027b690 in ?? ()
#26 0x0000000000000002 in ?? ()
#27 0xffffffff803a2f7a in pmap_remove_pages (pmap=0xffffff002dfbd160,
sva=0, eva=140737488355328) at /usr/src/sys/amd64/amd64/pmap.c:2529
#28 0xffffff002ddf8340 in ?? ()
#29 0x0000000000000004 in ?? ()
#30 0x0000000000000002 in ?? ()
#31 0xffffff002daefbe0 in ?? ()
#32 0xffffffff80244ca2 in exit1 (td=0xffffff0000a1a100, rv=771477504) at
vm_map.h:252
#33 0xffffffff80262f68 in sigexit (td=0xffffff002daefbe0, sig=2) at
/usr/src/sys/kern/kern_sig.c:2439
#34 0xffffffff80263b5c in postsig (sig=2) at
/usr/src/sys/kern/kern_sig.c:2320
#35 0xffffffff80285597 in ast (framep=0xffffffffa7da1c40) at
/usr/src/sys/kern/subr_trap.c:266
#36 0xffffffff80398159 in doreti_ast () at
/usr/src/sys/amd64/amd64/exception.S:391
(kgdb) list *0x00000678bf5e8b00
No source file for address 0x678bf5e8b00.

Running the same kernel with the debugging options enabled runs
flawlessly.  If it's needed, I'll post my kernel config, or a diff between
it and GENERIC.  Also, no fancy CFLAGS or anything of the sort were used.

For reference, the CPU is an Athlon 64 socket 939 rev. E4.  The
motherboard is a DFI LanParty UT SLI-DR nForce4 (I know... but I game on
it from time to time too).

Any suggestions?

  Ryan


More information about the freebsd-amd64 mailing list