Fatal trap 12: page fault while in kernel mode

n dhert ndhertbsd at gmail.com
Sat Jul 10 09:56:44 UTC 2010


On a recently, from FreeBSD7.2 to 8.0, upgraded system, I got a spontaneous
reboot during last night.

A crash dump was made.

files in /var/crash contain:
# cat info.0
Dump header from device /dev/da0s1b
  Architecture: amd64
  Architecture Version: 2
  Dump Length: 2046042112B (1951 MB)
  Blocksize: 512
  Dumptime: Sat Jul 10 00:22:39 2010
  Hostname: radix.cmi.ua.ac.be
  Magic: FreeBSD Kernel Dump
  Version String: FreeBSD 8.0-RELEASE-p2 #0: Thu Feb 25 09:59:40 CET 2010
    root at radix.cmi.ua.ac.be:/usr/obj/usr/src/sys/GENERICQ
  Panic String: page fault
  Dump Parity: 1570614093
  Bounds: 0
  Dump Status: good
File core.txt.0 is 3276 lines, so this for now I dont' post. If there are
parts relevant, I will post them when asked.

On the other hand, I followed FreeBSD Manual Ch 18.13 "How can I make the
most of the data I see when my kernel panics?"
and gathered the output of  kgdb (see below)

(my custom kernel "GENERICQ" is exactly the same os the GENERIC kernel
except that disk quota is enabled, no other changes)

What's the cause and how to get this solved?
Is it a known bug in FreeBSD 8.0 ????

radix# kgdb /usr/obj/usr/src/sys/GENERICQ/kernel.debug /var/crash/vmcore.0

GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Unread portion of the kernel message buffer:
Fatal trap 12: page fault while in kernel mode
cpuid = 3; apic id = 03
fault virtual address   = 0x80
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff805a6761
stack pointer           = 0x28:0xffffff80000a0a60
frame pointer           = 0x28:0xffffff80000a0aa0
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         = 12 (swi6: task queue)
trap number             = 12
panic: page fault
cpuid = 3
Uptime: 38d14h25m5s
Physical memory: 8178 MB
Dumping 1951 MB:panic: bufwrite: buffer is not busy???
cpuid = 3
 1936 1920 1904 1888 1872 1856 1840 1824 1808 1792 1776 1760 1744 1728 1712
1696
 1680 1664 1648 1632 1616 1600 1584 1568 1552 1536 1520 1504 1488 1472 1456
1440
 1424 1408 1392 1376 1360 1344 1328 1312 1296 1280 1264 1248 1232 1216 1200
1184
 1168 1152 1136 1120 1104 1088 1072 1056 1040 1024 1008 992 976 960 944 928
912
896 880 864 848 832 816 800 784 768 752 736 720 704 688 672 656 640 624 608
592
576 560 544 528 512 496 480 464 448 432 416 400 384 368 352 336 320 304 288
272
256 240 224 208 192 176 160 144 128 112 96 80 64 48 32 16
Reading symbols from /boot/kernel/star_saver.ko...Reading symbols from
/boot/ker
nel/star_saver.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/star_saver.ko
#0  doadump () at pcpu.h:223
pcpu.h: No such file or directory.
        in pcpu.h
(kgdb)
(kgdb) backtrace
#0  doadump () at pcpu.h:223
#1  0xffffffff8057f8c9 in boot (howto=260)
    at /usr/src/sys/kern/kern_shutdown.c:416
#2  0xffffffff8057fcfc in panic (fmt=0xffffffff80926acc "%s")
    at /usr/src/sys/kern/kern_shutdown.c:579
#3  0xffffffff80861758 in trap_fatal (frame=0xffffff00019eaab0, eva=Variable
"ev
a" is not available.
)
    at /usr/src/sys/amd64/amd64/trap.c:852
#4  0xffffffff80861b24 in trap_pfault (frame=0xffffff80000a09b0, usermode=0)
    at /usr/src/sys/amd64/amd64/trap.c:768
#5  0xffffffff80862414 in trap (frame=0xffffff80000a09b0)
    at /usr/src/sys/amd64/amd64/trap.c:494
#6  0xffffffff80848703 in calltrap ()
    at /usr/src/sys/amd64/amd64/exception.S:224
#7  0xffffffff805a6761 in device_get_softc (dev=0x0)
    at /usr/src/sys/kern/subr_bus.c:2294
#8  0xffffffff80269a37 in ata_generic_command (request=0xffffff01224df618)
    at /usr/src/sys/dev/ata/ata-lowlevel.c:659
#9  0xffffffff80268510 in ata_begin_transaction (request=0xffffff01224df618)
    at /usr/src/sys/dev/ata/ata-lowlevel.c:103
#10 0xffffffff8026a57c in ata_start (dev=0xffffff0001aac500)
    at /usr/src/sys/dev/ata/ata-queue.c:212
#11 0xffffffff8026a807 in ata_queue_request (request=0xffffff01224df618)
    at /usr/src/sys/dev/ata/ata-queue.c:95
#12 0xffffffff805baab3 in taskqueue_run (queue=0xffffff00019c1d80)
    at /usr/src/sys/kern/subr_taskqueue.c:239
#13 0xffffffff805598cd in intr_event_execute_handlers (p=Variable "p" is not
ava
ilable.
)
    at /usr/src/sys/kern/kern_intr.c:1165
#14 0xffffffff8055ae2e in ithread_loop (arg=0xffffff000187c460)
    at /usr/src/sys/kern/kern_intr.c:1178
#15 0xffffffff80557898 in fork_exit (
    callout=0xffffffff8055ada0 <ithread_loop>, arg=0xffffff000187c460,
    frame=0xffffff80000a0c80) at /usr/src/sys/kern/kern_fork.c:843
#16 0xffffffff80848bde in fork_trampoline ()
    at /usr/src/sys/amd64/amd64/exception.S:561
#17 0x0000000000000000 in ?? ()
#18 0x0000000000000000 in ?? ()
#19 0x0000000000000001 in ?? ()
#20 0x0000000000000000 in ?? ()
#17 0x0000000000000000 in ?? ()
#18 0x0000000000000000 in ?? ()
#19 0x0000000000000001 in ?? ()
#20 0x0000000000000000 in ?? ()
#21 0x0000000000000000 in ?? ()
#22 0x0000000000000000 in ?? ()
#23 0x0000000000000000 in ?? ()
#24 0x0000000000000000 in ?? ()
#25 0x0000000000000000 in ?? ()
#26 0x0000000000000000 in ?? ()
#27 0x0000000000000000 in ?? ()
#28 0x0000000000000000 in ?? ()
#29 0x0000000000000000 in ?? ()
#30 0x0000000000000000 in ?? ()
#31 0x0000000000000000 in ?? ()
#32 0x0000000000000000 in ?? ()
#33 0x0000000000000000 in ?? ()
#34 0x0000000000000000 in ?? ()
#35 0x0000000000000000 in ?? ()
#36 0x0000000000000000 in ?? ()
#37 0x0000000000000000 in ?? ()
#38 0x0000000000000000 in ?? ()
#39 0x0000000000000000 in ?? ()
#40 0x0000000000000000 in ?? ()
#41 0x0000000000e40000 in ?? ()
#42 0x0000000000000000 in ?? ()
#43 0xffffff00019eaab0 in ?? ()
#44 0xffffffff80bf1dc0 in affinity ()
#45 0xffffff00019eaab0 in ?? ()
#46 0xffffff80000a0620 in ?? ()
#47 0xffffff80000a05d8 in ?? ()
---Type <return> to continue, or q <return> to quit---
#48 0xffffff0001881720 in ?? ()
#49 0xffffffff805a2bd8 in sched_switch (td=0xffffffff8055ada0,
    newtd=0xffffff000187c460, flags=Variable "flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1858
Previous frame inner to this frame (corrupt stack?)
(kgdb)
(kgdb) q
radix#


More information about the freebsd-questions mailing list