kern/181289: "sys/dev/arcmsr" causes page fault
Stefan Zimmermann
mail at szimmermann.net
Wed Aug 14 13:30:00 UTC 2013
>Number: 181289
>Category: kern
>Synopsis: "sys/dev/arcmsr" causes page fault
>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: Wed Aug 14 13:30:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Stefan Zimmermann
>Release: FreeBSD 9.2-PRERELEASE (GENERIC)
>Organization:
>Environment:
FreeBSD storage.dmz.local 9.2-PRERELEASE FreeBSD 9.2-PRERELEASE #1: Mon Aug 12 13:17:24 CEST 2013 root at storage.dmz.local:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Under some circumstances the ARECA-RAID device driver causes a page fault; it't not known if this happens only under heavy i/o, but it seems that in such situations the error will raise earlier.
Side hint: Over in the FreeNAS forums is a guy who experienced almost the same problem (http://forums.freenas.org/threads/areca-driver-arcmsr-crashing-since-8-3.11779/).
Interesting is here, that he uses almost the same hardware-environment as me.
I can provide any information about the whole environment, but here are the short facts ...
CPU: Dual Core AMD Opteron(tm) Processor 275 (2193.80-MHz K8-class CPU)
RAM: 16 GB
ARECA ARC-1160 RAID-CONTROLLER
Firmware Version: V1.49 2010-12-02
BOOT ROM Version: V1.49 2010-12-02
Find below the relevant parts of the crash dump (can provide the whole dump if needed) ...
--- BEGIN: CRASH DUMP ---
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0xffffff84d63c8ae8
fault code = supervisor read data, page not present
instruction pointer = 0x20:0xffffffff80d01802
stack pointer = 0x28:0xffffff84686e1af0
frame pointer = 0x28:0xffffff84686e1b10
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 (irq30: arcmsr0)
trap number = 12
panic: page fault
cpuid = 0
KDB: stack backtrace:
#0 0xffffffff80948e26 at kdb_backtrace+0x66
#1 0xffffffff8090ed8e at panic+0x1ce
#2 0xffffffff80cf36b0 at trap_fatal+0x290
#3 0xffffffff80cf3a11 at trap_pfault+0x211
#4 0xffffffff80cf3fc4 at trap+0x344
#5 0xffffffff80cdd2f3 at calltrap+0x8
#6 0xffffffff80d01ede at arcmsr_interrupt+0x51e
#7 0xffffffff80d0211e at arcmsr_intr_handler+0x3e
#8 0xffffffff808e000d at intr_event_execute_handlers+0xfd
#9 0xffffffff808e17fd at ithread_loop+0x9d
#10 0xffffffff808dca5f at fork_exit+0x11f
#11 0xffffffff80cdd81e at fork_trampoline+0xe
#0 doadump (textdump=<value optimized out>) at pcpu.h:234
#1 0xffffffff8090e866 in kern_reboot (howto=260)
at /usr/src/sys/kern/kern_shutdown.c:449
#2 0xffffffff8090ed67 in panic (fmt=0x1 <Address 0x1 out of bounds>)
at /usr/src/sys/kern/kern_shutdown.c:637
#3 0xffffffff80cf36b0 in trap_fatal (frame=0xc, eva=<value optimized out>)
at /usr/src/sys/amd64/amd64/trap.c:879
#4 0xffffffff80cf3a11 in trap_pfault (frame=0xffffff84686e1a40, usermode=0)
at /usr/src/sys/amd64/amd64/trap.c:795
#5 0xffffffff80cf3fc4 in trap (frame=0xffffff84686e1a40)
at /usr/src/sys/amd64/amd64/trap.c:463
#6 0xffffffff80cdd2f3 in calltrap ()
at /usr/src/sys/amd64/amd64/exception.S:232
#7 0xffffffff80d01802 in arcmsr_drain_donequeue (acb=0xffffff800085d000,
flag_srb=2014202080, error=0) at /usr/src/sys/dev/arcmsr/arcmsr.c:835
#8 0xffffffff80d01ede in arcmsr_interrupt (acb=0xffffff800085d000)
at /usr/src/sys/dev/arcmsr/arcmsr.c:1890
#9 0xffffffff80d0211e in arcmsr_intr_handler (arg=<value optimized out>)
at /usr/src/sys/dev/arcmsr/arcmsr.c:2168
#10 0xffffffff808e000d in intr_event_execute_handlers (
p=<value optimized out>, ie=0xfffffe000839c900)
at /usr/src/sys/kern/kern_intr.c:1272
#11 0xffffffff808e17fd in ithread_loop (arg=0xfffffe000a3b49e0)
at /usr/src/sys/kern/kern_intr.c:1285
#12 0xffffffff808dca5f in fork_exit (
callout=0xffffffff808e1760 <ithread_loop>, arg=0xfffffe000a3b49e0,
frame=0xffffff84686e1c40) at /usr/src/sys/kern/kern_fork.c:992
#13 0xffffffff80cdd81e in fork_trampoline ()
at /usr/src/sys/amd64/amd64/exception.S:606
#14 0x0000000000000000 in ?? ()
(kgdb) list *0xffffffff80d01802
0xffffffff80d01802 is in arcmsr_drain_donequeue (/usr/src/sys/dev/arcmsr/arcmsr.c:838).
833 case ACB_ADAPTER_TYPE_B:
834 default:
835 srb = (struct CommandControlBlock *)(acb->vir2phy_offset+(flag_srb << 5));/*frame must be 32 bytes aligned*/
836 break;
837 }
838 if((srb->acb != acb) || (srb->srb_state != ARCMSR_SRB_START)) {
839 if(srb->srb_state == ARCMSR_SRB_TIMEOUT) {
840 arcmsr_free_srb(srb);
841 printf("arcmsr%d: srb='%p' return srb has been timeouted\n", acb->pci_unit, srb);
842 return;
--- END: CRASH DUMP ---
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list