kern/134401: Kernel Fatal trap 12: page fault while in kernel mode
at boot time; if_msk eth device module
Vassilis Laganakos
vassilis.laganakos at yahoo.com
Sun May 10 01:30:02 UTC 2009
>Number: 134401
>Category: kern
>Synopsis: Kernel Fatal trap 12: page fault while in kernel mode at boot time; if_msk eth device module
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun May 10 01:30:01 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Vassilis Laganakos
>Release: 7.2-STABLE
>Organization:
>Environment:
FreeBSD argonaut 7.2-STABLE FreeBSD 7.2-STABLE #2: Wed May 6 00:42:41 BST 2009 root at argonaut:/usr/obj/usr/src/sys/ARGO i386
>Description:
Frequently, ( 2 out of 5 times ) I get a kernel panic at boot time, when if_msk ethernet moduler is loaded (or if it is build in the kernel). If the module is not loaded, or the kernel is built without it, the problem goes away.
I noticed that right before the panic takes place, the msk0 device is configured but the reported MAC address id ff:ff:ff:ff:ff:ff and the last warning is no PHY found (If I remember correctly)
Looks similar to PR kern/128884, that was reported on FreeBSD 6.3.
Please see the backtrace and info from vmcore below:
----------------------------------------------------
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 "i386-marcel-freebsd"...
Unread portion of the kernel message buffer:
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x188
fault code = supervisor read, page not present
instruction pointer = 0x20:0xc060e9e4
stack pointer = 0x28:0xe9319b48
frame pointer = 0x28:0xe9319b60
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 = 13157 (ifconfig)
trap number = 12
panic: page fault
cpuid = 0
Uptime: 12m39s
Physical memory: 3050 MB
Dumping 128 MB: 113 97 81 65 49
<5>msk0: link state changed to UP
33 17 1
Reading symbols from /boot/modules/nvidia.ko...done.
Loaded symbols for /boot/modules/nvidia.ko
Reading symbols from /boot/kernel/acpi.ko...Reading symbols from /boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from /boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/warp_saver.ko...Reading symbols from /boot/kernel/warp_saver.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/warp_saver.ko
Reading symbols from /boot/kernel/if_msk.ko...Reading symbols from /boot/kernel/if_msk.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/if_msk.ko
#0 doadump () at pcpu.h:196
196 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) list *0xc060e9e4
0xc060e9e4 is in _mtx_lock_sleep (/usr/src/sys/kern/kern_mutex.c:341).
336 */
337 v = m->mtx_lock;
338 if (v != MTX_UNOWNED) {
339 owner = (struct thread *)(v & ~MTX_FLAGMASK);
340 #ifdef ADAPTIVE_GIANT
341 if (TD_IS_RUNNING(owner)) {
342 #else
343 if (m != &Giant && TD_IS_RUNNING(owner)) {
344 #endif
345 if (LOCK_LOG_TEST(&m->lock_object, 0))
(kgdb) bt
#0 doadump () at pcpu.h:196
#1 0xc061cb37 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#2 0xc061ce09 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:574
#3 0xc0895e7c in trap_fatal (frame=0xe9319b08, eva=392) at /usr/src/sys/i386/i386/trap.c:939
#4 0xc08960e0 in trap_pfault (frame=0xe9319b08, usermode=0, eva=392) at /usr/src/sys/i386/i386/trap.c:852
#5 0xc0896a62 in trap (frame=0xe9319b08) at /usr/src/sys/i386/i386/trap.c:530
#6 0xc087bb7b in calltrap () at /usr/src/sys/i386/i386/exception.s:159
#7 0xc060e9e4 in _mtx_lock_sleep (m=0xc898727c, tid=3340514400, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:339
#8 0xc06f4ba6 in in_control (so=0xc712b000, cmd=2149607705, data=0xc7849960 "msk0", ifp=0xc69c6c00, td=0xc71c3460)
at /usr/src/sys/netinet/in.c:525
#9 0xc06b81b8 in ifioctl (so=0xc712b000, cmd=2149607705, data=0xc7849960 "msk0", td=0xc71c3460) at /usr/src/sys/net/if.c:2017
#10 0xc065cb9a in soo_ioctl (fp=0xc75ff474, cmd=2149607705, data=0xc7849960, active_cred=0xc6868500, td=0xc71c3460)
at /usr/src/sys/kern/sys_socket.c:191
#11 0xc0655955 in kern_ioctl (td=0xc71c3460, fd=3, com=2149607705, data=0xc7849960 "msk0") at file.h:269
#12 0xc0655ab4 in ioctl (td=0xc71c3460, uap=0xe9319cfc) at /usr/src/sys/kern/sys_generic.c:571
#13 0xc0896435 in syscall (frame=0xe9319d38) at /usr/src/sys/i386/i386/trap.c:1090
#14 0xc087bbe0 in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:255
#15 0x00000033 in ?? ()
Previous frame inner to this frame (corrupt stack?)
-------------------------------------------------------------------------------
>How-To-Repeat:
Enable loading the if_msk module from boot/loader.conf and try booting a few times. The problem comes and goes randomly, without changing anything on the box.
Can be also generated, after booting a kernel that's built without it, and kldloading it later.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list