kern/137279: Page fault (fatal trap 12) NFS server w/Broadcom BCM5704

Brent Chatham freebsd-pr at spamblows.org
Thu Jul 30 22:00:10 UTC 2009


>Number:         137279
>Category:       kern
>Synopsis:       Page fault (fatal trap 12) NFS server w/Broadcom BCM5704
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jul 30 22:00:07 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Brent Chatham
>Release:        8.0-BETA2 (current as of 7/30/09)
>Organization:
>Environment:
FreeBSD staypuft.madrigal.org 8.0-BETA2 FreeBSD 8.0-BETA2 #0: Thu Jul 30 14:33:16 EDT 2009 root at staypuft.madrigal.org:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Dual operaton NFS server with Broadcom BCM5704 consistently crashes.  The time it takes varies but it's usually within an hour after reboot.  I've noticed that if the same directory is exposed via samba there's no crash but ultimately the system does seem to deadlock around ZFS somewhere (presumably different issue but can try and reproduce if anyone thinks it's relevant). 

Card info:

bge0 at pci0:2:3:0:        class=0x020000 card=0x164815d9 chip=0x164814e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'NetXtreme Dual Gigabit Adapter (BCM5704)'
    class      = network
    subclass   = ethernet
bge1 at pci0:2:3:1:        class=0x020000 card=0x164815d9 chip=0x164814e4 rev=0x10 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'NetXtreme Dual Gigabit Adapter (BCM5704)'
    class      = network
    subclass   = ethernet

Relevant dump info (can provide entire core.txt if needed):

panic: page fault

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:
trap() at trap+0x2e5
calltrap() at calltrap+0x8
--- trap 0xc, rip = 0xffffffff8083fbb8, rsp = 0xffffff805ab1bb10, rbp = 0xffffff805ab1bb40 ---
_bus_dmamap_sync() at _bus_dmamap_sync+0x28
bge_intr() at bge_intr+0x699
intr_event_execute_handlers() at intr_event_execute_handlers+0x68
ithread_loop() at ithread_loop+0xb2
fork_exit() at fork_exit+0x12a
fork_trampoline() at fork_trampoline+0xe
--- trap 0, rip = 0, rsp = 0xffffff805ab1bd30, rbp = 0 ---


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x4018
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff8083fbb8
stack pointer           = 0x28:0xffffff805ab1bb10
frame pointer           = 0x28:0xffffff805ab1bb40
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 (irq50: bge1)
trap number             = 12
panic: page fault
cpuid = 0
Uptime: 1h56m41s
Physical memory: 3054 MB
Dumping 2061 MB: 2046 2030 2014 1998 1982 1966 1950 1934 1918 1902 1886 1870 1854 1838 1822 1806 1790 1774 1758 1742 1726 1710 1694 1
678 1662 1646 1630 1614 1598 1582 1566 1550 1534 1518 1502 1486 1470 1454 1438 1422 1406 1390 1374 1358 1342 1326 1310 1294 1278 1262
 1246 1230 1214 1198 1182 1166 1150 1134 1118 1102 1086 1070 1054 1038 1022 1006 990 974 958 942 926 910 894 878 862 846 830 814 798
782 766 750 734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 2
54 238 222 206 190 174 158 142 126 110 94 78 62 46 30 14

Reading symbols from /boot/kernel/zfs.ko...Reading symbols from /bootdir/boot/kernel/zfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/zfs.ko
Reading symbols from /boot/kernel/opensolaris.ko...Reading symbols from /bootdir/boot/kernel/opensolaris.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/opensolaris.ko
Reading symbols from /boot/kernel/siis.ko...Reading symbols from /bootdir/boot/kernel/siis.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/siis.ko
#0  doadump () at pcpu.h:223
223     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) #0  doadump () at pcpu.h:223
#1  0xffffffff8057f15a in boot (howto=dwarf2_read_address: Corrupted DWARF expression.
)
    at /usr/src/sys/kern/kern_shutdown.c:419
#2  0xffffffff8057f5cc in panic (fmt=Variable "fmt" is not available.
)
    at /usr/src/sys/kern/kern_shutdown.c:575
#3  0xffffffff8085ec6d in trap_fatal (frame=0xc, eva=Variable "eva" is not available.
)
    at /usr/src/sys/amd64/amd64/trap.c:852
#4  0xffffffff8085f94c in trap (frame=0xffffff805ab1ba60)
    at /usr/src/sys/amd64/amd64/trap.c:345
#5  0xffffffff80845513 in calltrap ()
    at /usr/src/sys/amd64/amd64/exception.S:224
#6  0xffffffff8083fbb8 in _bus_dmamap_sync (dmat=0xffffff00045fea80,
    map=0xffffff0004832b80, op=2)
    at /usr/src/sys/amd64/amd64/busdma_machdep.c:936
#7  0xffffffff802e9d29 in bge_intr (xsc=Variable "xsc" is not available.
)
    at /usr/src/sys/dev/bge/if_bge.c:3127
#8  0xffffffff805594f8 in intr_event_execute_handlers (p=Variable "p" is not available.
)
    at /usr/src/sys/kern/kern_intr.c:1165
#9  0xffffffff8055a172 in ithread_loop (arg=0xffffff00045f5ae0)
    at /usr/src/sys/kern/kern_intr.c:1178
#10 0xffffffff8055744a in fork_exit (
    callout=0xffffffff8055a0c0 <ithread_loop>, arg=0xffffff00045f5ae0,
    frame=0xffffff805ab1bc80) at /usr/src/sys/kern/kern_fork.c:838
#11 0xffffffff808459ee in fork_trampoline ()
    at /usr/src/sys/amd64/amd64/exception.S:561
#12 0x0000000000000000 in ?? ()
#13 0x0000000000000000 in ?? ()
#14 0x0000000000000001 in ?? ()
#15 0x0000000000000000 in ?? ()
#16 0x0000000000000000 in ?? ()
#17 0x0000000000000000 in ?? ()
#18 0x0000000000000000 in ?? ()
#19 0x0000000000000000 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 0x00000000011c2000 in ?? ()
#37 0x0000000000000000 in ?? ()
#38 0xffffffff80c1f140 in affinity ()
#39 0xffffffff80c1f140 in affinity ()
#40 0xffffff000241a390 in ?? ()
#41 0xffffff805ab1bb80 in ?? ()
#42 0xffffff805ab1bb38 in ?? ()
#43 0xffffff00025f4720 in ?? ()
#44 0xffffffff805a240a in sched_switch (td=0xffffff00045f5ae0,
    newtd=0xffffffff8055a0c0, flags=Variable "flags" is not available.
) at /usr/src/sys/kern/sched_ule.c:1858
Previous frame inner to this frame (corrupt stack?)
(kgdb)




>How-To-Repeat:
Reboot and transfer data over exposed NFS share.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list